当使用 flat()
等JavaScript数组实验功能时,我正在尝试使Angular 2应用程序编译。
我在esnext.array
中添加了tsconfig.json
选项,因此lib
部分如下所示:
"lib": [
"es2017",
"esnext.array",
"dom"
],
我已经检查了
lib.esnext.array.d.ts
文件,它确实包含flat()
方法的定义。但是尽管如此,我还是遇到了编译错误:
更新1:
我检查了
esnext
选项,它导致相同的错误。另外,我检查了Angular CLI通过键入不存在的内容(例如
lib
)来选择esnext.array.dfgdfg
选项。更新2:
为了排除使用TypeScript版本2.9.2或Angular工具链出错的可能性,我创建了一个使用纯TypeScript的简单项目:
// greeter.ts
function greeter(persons: string[]) {
return "Hello, " + persons.flat().join();
}
var user: string[] = ["Jane User"];
document.body.innerHTML = greeter(user);
// tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"lib": [
"es2017",
"esnext.array",
"dom"
]
}
}
并尝试使用TypsScript 2.9.2,当前最新的3.0.1和
typescript@next
进行编译,但我总是遇到相同的错误:有人可以解释一下我在这里缺少什么吗?
最佳答案
在较早的TypeScript版本中,flat()
被称为flatten()
。因此,如果您坚持使用那些TS版本,则可以尝试使用flatten()
代替。