Type Scriptインデックスタイプ

4203 ワード

インデックス・タイプを使用すると、静的チェックがタイプが不確定(挙げられない)な「ダイナミック」シーンに上書きされます.
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