Open1
UnionからオブジェクトリテラルのEnumを安全に定義する方法
コード生成などでEnumの型がUnionで与えられた時、それに基づくオブジェクトリテラルを作成する。
type FooBar = 'Foo' | 'Bar';
const FooBarEnum: { readonly [X in FooBar]: X } = {
Foo: 'Foo',
Bar: 'Bar',
} as const;
const FooBarEnum2 = {
Foo: 'Foo',
Bar: 'Bar',
} as const satisfies { [X in FooBar]: X };