假设我有一个JS库“A”。我可以在WebStorm的JS项目中使用它,并且所有可用的方法都正确地显示在自动完成中。
然后我使用相同的库“A”,但它没有@type文件。当我导入它并尝试在TypeScript上下文中使用它时,没有显示自动完成。
在这种情况下,如何配置以显示JS自动完成?
如果上述信息不够清楚,请仅阅读下面的内容。
实际上问题要复杂得多,我在node.js TypeScript项目中使用了couchbase js lib,Couchbase js lib实际上有一个类型文件供我使用(从npm下载)。但是类型文件没有用最新的couchbase js更新,特别是cluster.authenticate
方法。当我在过时的类型文件下并尝试使用此方法时,它甚至不能编译,因为方法不存在于类型文件中。所以我必须删除类型文件并使用纯JS库。
你知道怎么解决吗?
附上两个屏幕截图以说明x1c 0d1xx 1c 1d 1x
1条答案
按热度按时间wqnecbli1#
正如注解中提到的,
tsconfig.json
应该有allowJs: true
。然而,当使用来自
node_modules
的模块时,maxNodeModuleJsDepth
也需要设置,例如maxNodeModuleJsDepth: 2
。问题是默认值为0,因此尽管启用了allowJs
,但node_modules
内部的文件只考虑d.ts
文件。在我的例子中,一个包没有类型定义,只有一个主文件,它只导入一个层次的其他文件。所以为了获得自动完成信息,我必须设置
maxNodeModuleJsDepth: 2
。