【问题标题】:How to fix unresolved function inspection in WebStorm 10如何修复 WebStorm 10 中未解决的功能检查
【发布时间】:2016-07-26 08:35:24
【问题描述】:

我正在使用 WebStorm 10。

当我使用像 bluebird 这样的库来生成类似代码时

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

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

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

那么我可以在 WebStorm 中执行 config *Async 之类的操作来避免 unresolved function 标记吗?

【问题讨论】:

  • 遗憾的是,当时似乎没有解决方案,并且假设在不久的将来不会有任何解决方案是有道理的,因为新创建的函数实际上并没有在来源..

标签: node.js webstorm


【解决方案1】:

当时最好的解决方案是使用命名空间保留。 Webstorm 支持使用 cmets 将内容标记为合法:

    /** @namespace foo.doSomethingAsync */

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

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

我希望这会有所帮助..

【讨论】:

    【解决方案2】:

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

    Promises 是标准内置对象的一部分,所以我认为 WebStorm 2016 可以使用 TypeScript 定义并能够获取它,但默认情况下它没有。 除了这个,一切正常。

    于是,我去了Settings > Languages & Frameworks > JavaScript,将JavaScript语言版本改为ECMAScript 6

    由于我使用的是 TypeScript,我以为它不会有任何关系,但 它确实。 现在Promise 对象参考有效并链接到lib.es6.d.ts,这是用于TypeScript 的ES2015 对象的内部WebStorm 定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 2019-01-29
      相关资源
      最近更新 更多