typeof Enum
code:typescript
enum Direction {
East = "東",
West = "西",
South = "南",
North = "北",
}
type DirectionType = typeof Direction;
const directionObject: DirectionType = {
East: Direction.East,
North: Direction.North,
South: Direction.South,
West: Direction.West
}
EnumにtypeofをつけるとEnumのメンバーをObjectのキーにし、Enumの値をObjectのキーにする型定義が出来上がる。
Pickなどと併用するとEnumの特定のメンバーだけを抜き出したObjectが作れる。
code:typescript
type DirectionEastAndWestType = Pick<typeof Direction, "East" | "West">
const directionObject2: DirectionEastAndWestType = {
East: Direction.East,
West: Direction.West
}
なんでこうなるのかいまいちわからん。