Skip to content

索引访问类型

索引访问类型是一种从对象类型中根据键提取对应值类型的方式,语法类似于访问对象属性,但用于类型系统。

基本语法

ts
type Person = {
  name: string;
  age: number;
};

type NameType = Person["name"]; // string
type AgeType = Person["age"];   // number

使用联合类型作为索引

ts
type Keys = "name" | "age";
type ValueTypes = Person[Keys]; // string | number

访问嵌套属性类型

ts
type Company = {
  manager: {
    name: string;
    age: number;
  };
};

type ManagerName = Company["manager"]["name"]; // string

访问值类型

对象:

ts
type Dict = {
  [key: string]: number
}

type ValueType = Dict[string] // number
  • Dict[string] 代表“访问所有 string 类型的key 的值类型”

  • 因为定义里是 number,所以结果就是 number

数组:

ts
type NumberDict = {
  [index: number]: string
}

type ValueType = NumberDict[number] // string

Dict[number] → 拿到所有number类型的 key 对应的值类型