TypeScriptでEnumな配列やオブジェクトから型を取得する
August 27, 2021
配列から型を取得 #
typeof xxx[number]
const names = ['Alice', 'Bob', 'Charlie', 'David'] as const;
type Names = typeof names[number]; // "Alice" | "Bob" | "Charlie" | "David"
オブジェクトのキーから型を取得 #
keyof typeof xxx
const favoriteColors = {
alice: 'cyan',
bob: 'magenta',
charlie: 'yellow',
david: 'black',
} as const;
type FavoriteColors = keyof typeof favoriteColors; // "alice" | "bob" | "charlie" | "david"
オブジェクトのバリューから型を取得 #
typeof xxx[keyof typeof xxx]
const favoriteColors = {
alice: 'cyan',
bob: 'magenta',
charlie: 'yellow',
david: 'black',
} as const;
type FavoriteColors = typeof favoriteColors[keyof typeof favoriteColors]; // "cyan" | "magenta" | "yellow" | "black"