需要解决方法使WebStorm的自动完成能够解决第三方模块方法
几乎所有的第三方模块WebStorm的autocomplition不能解决方法/领域。 在autocompletion下,我的意思是所有的intellisense-likefunction。 例如:
var async = require('async'); async.series() //WebStorm's tooltip says: Unresolved function or method series()
同时解决
async.exports.series().
但是这会导致运行时错误:
TypeError: Cannot call method 'series' of undefined
对于我自己的模块,我find了解决方法。 如果我在模块中做:
var myModule = module.exports; myModule.someMethod = function(){ ... }
然后someMethod autocomplition工作正常。
关于以上所有问题,我有一堆问题。
1.为什么ide无法parsingasync.series()?
2.为什么async.exports.series()导致运行时错误?
3.如何使autocomplition工作?
WebStorm 5.0.4。
转到设置 – > JavaScript – >库 – >检查“Node.js全局”
使用新的如下:
var async = new require('async');
新的WebStorm v7能够为常用模块定义Typescript社区存根。 这部分解决了自动完成和IDE警告的问题。
对于不太stream行的模块,我更喜欢使用这个丑恶的作弊:
//noinspection ConstantConditionalExpressionJS,JSPotentiallyInvalidConstructorUsage var async = false ? new require('async') : require('async');
但是,这并不能解决问题,当属性通过一些algorithm附加到模块(例如迭代文件系统)时。 对于小型和不受欢迎的模块,这是一个罕见的情况。
顺便说一句,async已经在git@github.com:borisyankov / DefinitelyTyped.git存储库打字稿存根(stub)。