type Side = 'send' | 'receive' function sideCharObj(): { [key: Side]: string } { return { send: '発', receive: '受' } }, { [key: string]: string } のように書けそうだが、 これだと下記のエラーが出る An index signature parameter type cannot be a union type. Consider using a mapped object type instead. Mapped types で key の型を指定 type Side = 'send' | 'receive' function sideCharObj(): { [key in Side]: string } { return { send: '発'