gpt4 book ai didi

typescript - 为什么用es3编译target时foreach编译不通过?

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:32 25 4
gpt4 key购买 nike

我在 typescript 设置中将目标设置为“es3”。

{
"compilerOptions": {
"target": "es3",
"outDir": "dist"
}
}

然后我编写了“foreach”语法。

const array: string[] = ['hi', 'hello'];

array.forEach(element => {
console.log(element);
});

我已经编译了这段代码。得到如下结果。

var array = ['hi', 'hello'];
array.forEach(function (element) {
console.log(element);
});

为什么 'foreach' 语法不能用 es3 编译?

最佳答案

方法永远不会被转换成 TypeScript 中的其他形式。如果您在 TypeScript 中调用 .someMethod(),生成的 JavaScript 也会调用 .someMethod(),即使实际上没有这样的方法。相反,for-of 语法将为您提供兼容 ES3 的代码。

for (const item of []) { }

这给你:

for (var _i = 0, _a = []; _i < _a.length; _i++) {
var item = _a[_i];
}

不幸的是,TS 没有显示你没有 .forEach 的错误,这是因为 lib.d.ts 包含每个 ES5 定义的类型,并认为你有它们. (有关详细信息,请参阅 Microsoft/TypeScript#2410)

关于typescript - 为什么用es3编译target时foreach编译不通过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44063145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com