在TypeScript中分配参数类型

时间:2019-02-10 20:14:12

标签: typescript

我在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库吗?

1 个答案:

答案 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界面中不存在,这是一个错误...

This will work

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 }}