使用TypeScript lib.core.d.ts而不是lib.d.ts

看来TypeScript编译器总是包含lib.d.tslib.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。

希望能帮助到你。