TypeScript ではEnum型が標準で用意されているが、使いづらい。
多くの場合、Enumで列挙したいような値は、as const
で代用するのがいい。
例えば、自社で扱う果物を列挙する場合、
const FRUITS = { APPLE: 'apple', ORANGE: 'orange', BANANA: 'banana', } as const; type Fruit = typeof FRUITS[keyof typeof FRUITS]; // 'apple' | 'orange' | 'banana'
と定義しておくと、使いやすいと思う。
果物の価格の定義は
const prices = { [FRUITS.APPLE]: 100, [FRUITS.ORANGE]: 200, [FRUITS.BANANA]: 250, }
としておくことで、
function getPrice(fruit: Fruit) { return prices[fruit] } getPrice(FRUITS.APPLE); // 100
とできる。