我正在使用WebStorm 10。
当我使用像bluebird这样的lib来创建类似
的代码时var foo = require("foo"); // I will call foo.doSomething
Promise.promisifyAll(foo);
foo.doSomethingAsync(...).then(...)
doSomethingAsync 将被标记为未解析的功能检查。
那么,为了避免未解析的功能标记,我可以在WebStorm中执行config * Async这样的操作吗?
答案 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定义。