javascript 如何在TypeScript中使用第3阶段的功能?

ego6inou  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(84)

Array.prototype.at()当前是stage 3 proposal。我尝试在tsconfig.json中设置"lib": ["ESNext"],但仍然得到:

Property 'at' does not exist on type 'number[]'.

字符串
如何在TypeScript中使用Array.prototype.at()
概括地说,如何在TypeScript中使用阶段3功能?
TypeScript版本是4.3.5。

nwlls2ji

nwlls2ji1#

目前,Array.prototype.at()在TypeScript中支持hasn't landed。要使用它,我们需要安装@types/proposal-relative-indexing-method并包含相应的polyfill。
同样的步骤也适用于其他阶段3功能,如果它们在TypeScript中还不支持的话。

zyfwsgd6

zyfwsgd62#

不能在Typescript中使用Stage 3特性。不是全部。这通常取决于特性。例如Optional Chaining需要Typescript的语法更新。
关于Array.prototype.at,ESNext的lib.d.ts文件可能没有更新。
因此,您应该在项目中创建一个新的.d.ts文件,并使用module augmentation扩展Array声明并为Array.prototype.at添加正确的接口。您可以查看here以查看如何实现lib.es<year>.d.ts的几个示例。
例如:https://github.com/microsoft/TypeScript/blob/main/lib/lib.es2019.array.d.ts#L58
当然,创建一个新的.d.ts功能不会polyfill你的代码来添加Array.prototype.at,如果你的环境中没有的话。你仍然需要一个polyfill系统,比如带core-js的Babel。

相关问题