我在JavaScript ES6中有以下代码:
data = [{name:'Peter'}];
const first_name = data.find(o => o.Name === 'name').Value;
我想在我设置的tsconfig.json文件中迁移到TS:
"noImplicitAny": true,
现在我得到:
Parameter 'o' implicitly has an 'any' type
我尝试过:
const first_name = data.find(o:object => o.Name === 'name').Value;
但是我得到了:
Error: ',' expected.
这是我使用TS的第一天,那么,如何在TypeScript中使用“ Array.find”?我需要添加一个@type库吗?
答案 0 :(得分:2)
您的键入错误
data = [{name:'Peter'}];
const first_name = data.find(o => o.Name === 'name').Value;
假设您拥有
之类的界面人员interface People {
name: string;
}
数据类型将为Array(或People [])。在这里,您可以找到Name
属性(驼峰),而不是name
所有小写字母
此外,您想获取Value
属性,但是此属性在您的People
界面中不存在,这是一个错误...
interface People {
name: string;
firstName: string;
}
const data: People[] = [{name: 'Peter', firstName:'Pan'}];
const firstName = data.find(o => o.name === 'name').firstName;
请注意,TS中的良好命名习惯是使用camelCase,因此,对于属性名称(而不是PascalCase),应使用“ name”和“ value”,first_name的snake_case的故事应为{{1 }}