描述:
toArray()
我在尝试在 TypeScript 中的对象上使用该方法时遇到问题SetIterator
。虽然该方法在 JavaScript 中可用,但 TypeScript 标记了一个错误,表明该方法在 SetIterator 类型上不存在。
const str1 = "abcd"
const set1 = new Set([...str1]);
let keys: SetIterator<string> = set1.keys();
return keys.toArray().join("");
// get error Property 'toArray' does not exist on type 'SetIterator<string>'.ts(2339)
为什么 TypeScript 无法识别toArray()
方法?
TypeScript 版本:
^5.7.0-dev.20241013
VScode:1.94.2
vite:“^5.0.8”
--target
:ES2020(tsconfig.json // "target" : "ES2020"
)
我尝试使用显式类型断言,但它们没有解决问题。
我已验证我的 TypeScript 设置是最新的。
我查阅了相关文档和社区论坛,但没有找到解决方案。我知道 Array.from()
Iterator Helpers 提案最近已进入 TC39 流程的第 4 阶段,因此它将很快进入 ECMAScript 标准。TypeScript 在microsoft/TypeScript#58222中实现了这些类型,该提案与TypeScript 5.6一起发布。由于它们不属于任何现有 ES 标准,因此如果您想在 TypeScript 中使用它们,则需要将
--target
编译器选项设置为"ESNext"
,以获取最新的类型。完成此操作后,您的代码将按预期进行编译:游乐场链接到代码