我对 tsconfig.json
中的 compilerOptions->lib 属性有疑问。
情况是我正在开发一个用 TypeScript 编写的 Firebase Cloud Functions 项目,并且我需要方法 Array.prototype.includes()
。但我无法构建,因为不支持includes(),快速的Google搜索显示我只需将lib从ES6更改为ES2016,这会更改Ecmascript的版本。
我的问题是。除了提供更新/更多功能之外,更改 lib 属性还有什么作用吗?
我担心它是否可能与 Firebase Cloud Functions 或我正在使用的 NodeJS 版本或 NPM 包/依赖项发生冲突。
最佳答案
不,lib
标志不会改变 Typescript 编译器的输出,target
标志可以做到这一点。
lib
仅包含您在编译过程中指定的库版本的类型,以便编译器不会提示。 (这些类型可以在node_modules\typescript\lib下找到)
如果您的目标运行时不支持您使用的函数(在本例中为includes()),您有责任使用polyfill 来提供它。 Typescript 实际上并不在编译输出中包含为您提供的库。
关于javascript - 更改 TypeScript compilerOptions->lib 是否会与 NPM 包或依赖项发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489982/