javascript - TypeScript - 没有定义文件的第三方库 - 智能感知可能吗?

标签 javascript typescript intellisense webstorm definitelytyped

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


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

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

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

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

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

我希望我的问题的措辞是有意义的,如果有任何混淆,请告诉我。

最佳答案

Is there any way that I can combine both intellisense ways in my project?

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

关于javascript - TypeScript - 没有定义文件的第三方库 - 智能感知可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34870860/

相关文章:

angular - setInterval() 问题不访问 Angular2 中的指令函数

asp.net - 是否支持在 Visual Studio 中验证(智能感知)内联 CSS3?

javascript - 如何创建包含 CDATA 的 xml 元素

javascript - 当您使用来自 "ExpressionChangedAfterItHasBeenCheckedError"的信息时,如何避免 "Cannot Read Property of Undefined"或 "@ViewChild"?

angular - 通过在 typescript 中调用方法打开 bootstrap 4 模式

angular - 相对路径不适用于 Angular 6 中的 routerLink

visual-studio - IntelliSense 忘记了我的代码片段!

visual-studio-2012 - Visual Studio 2012 的 Intellisense 不再接受按空格键的建议

javascript - jquery ajax unhide div 如果变量等于

javascript - 将 "this"传递到 window.setInterval()