我使用的 IDE 是 WebStorm,但我的问题适用于任何 IDE。
我正在为我的项目安装一些第三方节点模块,其中一些在 DefinitelyTyped 中没有可用的定义文件,或者定义文件已过时。我目前对这些库使用的解决方法是以下之一:
- 将第三方命名空间/模块声明为类型any
声明一个最小定义,它指定我使用的库公开的方法。例如:
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/