jac*_*118 4 typescript typescript1.8 typescript-typings typescript2.0
我有一个PersonTypes对象数组,并且只想在 forEach 循环中使用部分键。什么是更精确、更正确的打字稿编码来提供类型?我可以做一些类似的事情
people.forEach((person: Pick<PersonTypes, 'name' | 'gender'>
,
people.forEach((person: PersonTypes) =>{
或者
people.forEach((person: any) =>{
什么是在打字稿中编码的正确方法
export type PersonTypes = {
name: string;
value: string;
gender: boolean;
};
const people: PersonTypes[] = [
{name: 'apl', value: 'apple', gender: true},
{name: 'gal', value: 'google', gender: false},
]
people.forEach((person: Pick<PersonTypes, 'name' | 'gender'>) =>{
//people.forEach((person: PersonTypes) =>{
//people.forEach((person: any) =>{
console.log(person.name);
console.log(person.gender);
} )
Run Code Online (Sandbox Code Playgroud)
wen*_*jun 10
你应该坚持:
people.forEach((person: PersonTypes) =>{
});
Run Code Online (Sandbox Code Playgroud)
这是因为people数组中的每个对象都是 type PersonTypes,并且实际上不需要从该类型中提取属性。
事实上,没有必要明确输入 person as PersonTypes,因为 people 是 of PersonTypes[]。TypeScript 会自动推断数组中的每个对象都是PersonTypes,所以这就足够了:
people.forEach((person) =>{
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以选择对参数进行解构,这将使您的函数更加简洁和干净。
people.forEach(({ name, gender }) =>{
console.log(name);
console.log(gender);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |