如何在打字稿中引用数组项的类型?

Tar*_*mán 4 typescript

可以使用以下语法引用 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;
Run Code Online (Sandbox Code Playgroud)

是否可以以同样的方式获取 Person['addresses'] 的数组项类型?

免责声明:我知道在这个玩具示例中可以很容易地推断出这一点。我还了解到,可以通过创建 Address 接口来避免整个问题,但有时如果以这种方式引用某些类型,那么总体上会更简洁,并且更容易理解。

Tar*_*mán 9

以下是有效的 TypeScript,尽管看起来有点奇怪:

let address: Person['addresses'][0] = {
  city: 'Budapest',
  street: 'Kossuth',
}
Run Code Online (Sandbox Code Playgroud)