Open2
typescriptでenumを表現する(unionを使おう)
typescriptでは、enumではなく、unionを使って表現すべきというが、どうすれば良いのかメモ
一旦欲しい機能はこんな感じだったのでメモ
const animals = ["gorilla", "dog", "cat"] as const;
type Animals = typeof animals[number];
const isAnimals = (who: string): who is Animal =>
animals.includes(who as any); //type error をさけるためanyにキャスト
const someFunc =() =>{
const whoami = "human" // ここではstring
if (!isAnimals(whoami)){
// 動物じゃない string型
}
// ここではAnimal型を満たすとして実装できる
}