我使用的IDE是WebStorm,但我的问题适用于任何IDE。
我正在为我的项目安装一些第三方节点模块,有些在DefinitelyTyped中没有可用的定义文件,或者定义文件已过时。我目前用于这些库的解决方法是以下之一:
声明一个最小定义,它指定我使用的库公开的方法。 e.g:
declare module 'redux-simple-router' {
export function syncHistory(history: any): any
export function routeReducer(): any
}
2有点优于1,因为它提供了更多信息,并且我能够为方法名称获得自动完成,但是,这两种方法都非常不如WebStorm目前提供的方法,如果我使用非-Typescript ES6 with Babel。有什么方法可以在我的项目中结合两种智能感知方法吗?
换句话说,我正在寻找的是一种告诉WebStorm的方法:对于每次导入,如果你有类型定义使用它,如果没有 - 使用常规intellisense(即在node_modules中搜索导入)。 / p>
我希望我的问题以一种有意义的方式表达,如果它以任何方式混淆,请告诉我。
答案 0 :(得分:0)
Is there any way that I can combine both intellisense ways in my project?
嗯......目前,如果WebStorm可以使用typescript存根和node_modules解析某些函数,则会合并结果(尝试转到声明时可能会导致“几个定义”等)。如果由于定义模块的方式(动态等)而无法从node_modules解析,则仅使用打字稿存根。 将来,我们计划仅使用存根来完成/错误检查,但是(如果可能的话)在导航到定义/搜索用法时使用node_modules