如何在WebStorm 10中修复未解决的功能检查

时间:2015-05-29 02:52:04

标签: node.js webstorm

我正在使用WebStorm 10。

当我使用像bluebird这样的lib来创建类似

的代码时
var foo = require("foo"); // I will call foo.doSomething
Promise.promisifyAll(foo); 

foo.doSomethingAsync(...).then(...)

doSomethingAsync 将被标记为未解析的功能检查。

那么,为了避免未解析的功能标记,我可以在WebStorm中执行config * Async这样的操作吗?

2 个答案:

答案 0 :(得分:3)

当时的最佳解决方案是使用名称空间保留。 Webstorm支持使用注释来将内容标记为合法:

    /** @namespace foo.doSomethingAsync */

    var foo =     Promise.promisifyAll(require('foo')); 
    foo.doSomethingAsync(...)
       .then(...)

这并不能解决实际问题,并且在使用该功能时不会为您提供有关参数的建议,但这肯定是一种方便,有助于清除在宣传时产生的疯狂数量的警告。

我希望这有帮助..

答案 1 :(得分:-1)

使用ES2015处理TypeScript和Angular 2(遵循其Heroes教程)时遇到了类似的问题,但对于Promise对象。

Promises是标准内置对象的一部分,所以我认为WebStorm 2016可以使用TypeScript定义并且能够获得它,但默认情况下它没有。 除此之外,一切都有效。

所以,我去了Settings > Languages & Frameworks > JavaScript并将JavaScript语言版本更改为 ECMAScript 6

我认为自从我使用TypeScript以来它没有任何关系,但是它确实。 现在Promise对象引用工作并链接到lib.es6.d.ts,这是TypeScript的ES2015对象的内部WebStorm定义。