索引访问类型
索引访问类型是一种从对象类型中根据键提取对应值类型的方式,语法类似于访问对象属性,但用于类型系统。
基本语法
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] // numberDict[string]代表“访问所有 string 类型的key 的值类型”因为定义里是
number,所以结果就是number
数组:
ts
type NumberDict = {
[index: number]: string
}
type ValueType = NumberDict[number] // stringDict[number] → 拿到所有number类型的 key 对应的值类型
