計算されたプロパティ名を入力する方法は?

2
2022.01.13
const foobar = <T extends 'a' | 'b' | 'c'>(name: T) => ({ [name]: name })

const result = foobar('a') // typeof result is { [x: string]: "a" }

計算されたプロパティ名を入力する方法は?

foobar('a')の代わりに{ a: "a" } を返してほしい 。

回答
3
2022.01.14

戻り値の型について明示的に typescript に指示できます。

const foobar = <T extends 'a' | 'b' | 'c'>(name: T) => ({ [name]: name }) as Record<T, T>