TypeScript 索引类型

索引类型让静态检查能够覆盖到类型不确定(无法穷举)的”动态“场景

let Obj = {
  a: 1,
  b: 2,
  c: 3
};
let getValues = <T, K extends keyof T>(obj: T, keys: K[]): T[K][] => {
  return keys.map(key => obj[key]);
};

console.log(getValues(Obj, ["a", "b"]));
console.log(getValues(Obj, ["d", "b"]));

interface Obj {
  a: Number;
  b: String;
}
let key: keyof Obj; // a | b

let value: Obj["a"]; // Number

你可能感兴趣的:(typescript)