使用TypeScript lib.core.d.ts而不是lib.d.ts
看来TypeScript编译器总是包含lib.d.ts
或lib.es6.d.ts
(取决于编译器的目标)。
在我们的应用程序中,我们有一个已经在lib.d.ts
定义的WebSocket
类。 我们正在Node.js下运行我们的应用程序,而不是在Web浏览器中运行,所以我们实际上并不需要lib.d.ts
所有定义。 相反, lib.core.d.ts
对我们lib.core.d.ts
就足够了(当然会解决WebSocket
冲突)。
是否可以告诉TypeScript编译器使用哪个全局types定义文件?
使用--noLib
编译器选项排除lib.d.ts
,然后在源文件中添加对lib.core.d.ts
引用。
等同于tsconfig.json
将是"noLib": true
。
如果你只需要Node.js定义,你也可以使用Definitely Typed one
。
另一个解决scheme可能是像使用core-js一样使用lib。 其中有ES6所需的所有polyfils。 注意:您还需要将core-js tsd文件添加到您的tsds。
希望能帮助到你。