【问题标题】:TypeScript - third party libraries without definition files - is intellisense possible?TypeScript - 没有定义文件的第三方库 - 智能感知可能吗?
【发布时间】:2016-04-24 13:49:54
【问题描述】:

我使用的 IDE 是 WebStorm,但我的问题适用于任何 IDE。


我正在将一些第三方节点模块安装到我的项目中,而有些在 DefinitiveTyped 中没有可用的定义文件,或者定义文件已过时。我目前用于这些库的解决方法是以下之一:

  1. 将第三方命名空间/模块声明为类型any
  2. 声明一个最小定义,它指定我使用的库公开的方法。例如:

    declare module 'redux-simple-router' {
      export function syncHistory(history: any): any
    
      export function routeReducer(): any
    }
    

2 比 1 稍微好一点,因为它提供了更多信息,例如,我可以为方法名称自动完成,但是,如果我使用 non -Typescript ES6 和 Babel。有什么方法可以在我的项目中结合这两种智能感知方式?

换句话说,我正在寻找一种告诉 WebStorm 的方法:对于每个导入,如果您有类型定义,则使用它,如果没有 - 使用常规智能感知(即在 node_modules 中搜索导入)。

我希望我的问题以一种有意义的方式表达,如果它以任何方式令人困惑,请告诉我。

【问题讨论】:

    标签: javascript typescript intellisense webstorm definitelytyped


    【解决方案1】:
    Is there any way that I can combine both intellisense ways in my project?
    

    嗯...目前,如果 WebStorm 可以使用 typescript 存根和 node_modules 解析某些函数,则结果将被合并(可能会导致在尝试进行声明时出现“多个定义”等)。如果由于模块的定义方式(动态等)而无法从 node_modules 解析,则仅使用 typescript 存根。 将来,我们计划仅使用存根来完成/错误检查,但(如果可能)在导航到定义/搜索用法时使用 node_modules

    【讨论】:

      猜你喜欢
      • 2012-10-21
      • 2016-12-28
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      相关资源
      最近更新 更多