オブジェクトの「プロパティの型」と「値の型」の取得方法 – TypeScript

オブジェクトのプロパティの型を取得する

プロパティの型は”keyof”を使って取得することができます。

type KeyOf<T> = keyof T;

インターフェース / 型エイリアスの場合

type User = {
  name : string,
  age : number,
  occupation: string
};

type UserKeys = KeyOf<User>; // "name" | "age" | "occupation"

オブジェクトの場合

const user = {
  name: 'Anthony',
  age: 32,
  occupation: 'engineer'
};

type UserKeys = KeyOf<typeof user>; // "name" | "age" | "occupation"

オブジェクトの値の型を取得する

値の型は次のように取得することができます。

type ValueOf<T> = T[keyof T];

インターフェース / 型エイリアスの場合

type User = {
  name : string,
  age : number,
  occupation: string
};

type UserValues = ValueOf<User>; // string | number

オブジェクトの場合

const user = {
  name: 'Anthony',
  age: 32,
  occupation: 'engineer'
};

type UserValues = ValueOf<typeof user>; // string | number

Related Posts