如何在TypeScript中引用数组项的类型?

4

在TypeScript中,可以使用以下语法来引用接口属性的类型:Person['gender'],因此以下代码是有效的TypeScript:

interface Person {
  gender: 'male' | 'female';
  addresses: {
    city: string,
    street: string
  }[];
}

let person: Person = {
  gender: 'male',
  addresses: [],
};

let gender: Person['gender'] = person.gender;

有没有办法以同样的方式获取Person ['addresses']的数组项类型
免责声明:我知道在这个玩具示例中很容易推断出来。我也知道,如果以这种方式引用某些类型,有时会更简洁清晰,而且更容易理解,但是整个问题可以通过创建Address接口来避免。
1个回答

9
以下是有效的TypeScript代码,尽管它看起来有点奇怪:
let address: Person['addresses'][0] = {
  city: 'Budapest',
  street: 'Kossuth',
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接