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。
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。
2条答案
按热度按时间nwlls2ji1#
目前,
Array.prototype.at()
在TypeScript中支持hasn't landed。要使用它,我们需要安装@types/proposal-relative-indexing-method
并包含相应的polyfill。同样的步骤也适用于其他阶段3功能,如果它们在TypeScript中还不支持的话。
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。