我对tsconfig.json
中的compilerOptions-> lib属性有疑问。
情况是我正在使用TypeScript编写的Firebase Cloud Functions项目,我需要方法Array.prototype.includes()
。但我无法构建,因为不支持includes(),快速Google搜索显示我只需要将库从ES6更改为ES2016,这会更改Ecmascript的版本。
我的问题是。除了给我更新/更多的功能之外,更改lib属性是否会做任何事情?
我担心它是否会以某种方式与Firebase Cloud Functions或我使用的NodeJS版本或NPM包/依赖项发生冲突。
答案 0 :(得分:2)
lib
标志没有改变Typescript编译器的输出,target
标志就是这样。
lib
只包含您在编译过程中指定的库版本的类型,因此编译器不会抱怨。 (这些类型可以在node_modules \ typescript \ lib下找到)
如果您的目标运行时不支持您使用的功能(在这种情况下包括()),您有责任使用polyfill提供它。在编译的输出中,Typescript实际上并不包含你的库。