javascript - 更改 TypeScript compilerOptions->lib 是否会与 NPM 包或依赖项发生冲突

标签 javascript typescript firebase google-cloud-functions

我对 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/

相关文章:

javascript - Google map - 默认图钉仍然显示并遮盖自定义图标

javascript - TypeScript:如何从对象初始化派生类?

firebase - 我可以信任 Cloud Firestore 触发器的顺序吗?

JavaScript 异步回调错误处理

javascript - 如何简化javascript事件监听器?

javascript - 一旦浏览器收到 200ok 就中止或标记 ajax 请求

angular - 父组件从 ActivatedRoute 获取空 Params

css - 如何在 Typescript 的文本框上创建 'glow' 效果?

java - 当标记 android studio 触发时,如何获取我保存在 firebase 中的数据 latlng

Xcode 控制台中显示 Firebase/InAppMessaging 错误