索引类型

1.   索引类型查询操作符   keyof  ,通过keyof我们能够获取一个类型的所有属性名组成的联合类型 

keyof操作符,连接一个类型,会返回一个由这个类型的所有属性名组成的联合类型

interface Info {
  name: string;
  age: number;
}
let infoProp: keyof Info;
infoProp = "name";
infoProp = "age";
infoProp = "no"; // error 不能将类型“"no"”分配给类型“"name" | "age"”

这里的keyof Info其实相当于"name" | “age”

2.索引访问操作符也就是[],其实和我们访问对象的某个属性值是一样的语法

interface Info {
  name: string;
  age: number;
}
type NameType = Info["name"];
let name: NameType = 123; // error 不能将类型“123”分配给类型“string”
type NameType = Info["name"];  得到一个 strinG
123 是 number