我有一个简单的打字稿程序-
const users = [{ name: "Ahmed" }, { name: "Gemma" }, { name: "Jon" }];
// We're going to look to see if we can find a user named "jon".
const jon = users.find(u => u.name === "jon");
编译该程序时,出现此错误-
p2@6190:~/projects/typescript$ tsc functions.ts
functions.ts:4:19 - error TS2339: Property 'find' does not exist on type '{ name: string; }[]'.
4 const jon = users.find(u => u.name === "jon");
~~~~
Found 1 error.
即使有错误,我也看到输出文件正在生成functions.js。
var users = [{ name: "Ahmed" }, { name: "Gemma" }, { name: "Jon" }];
// We're going to look to see if we can find a user named "jon".
var jon = users.find(function (u) { return u.name === "jon"; });
从javascript的角度来看,这是正确的代码。
在修正所有错误之前,打字稿是否根本不会生成输出?
答案 0 :(得分:0)
Array.prototype.find
最初在ES2015中提供。
因此,您需要告诉TypeScript您正在使用ES2015。您可以使用--lib
编译器选项:TypeScript doc。
您还可以在tsconfig.json
中使用“ lib”配置,例如:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"skipLibCheck": true,
"lib": ["es2015"]
}
}
(考虑查看文档中的每个配置,以便您完全了解编译器的工作)。