[英]How to type a computed property name?
const foobar = <T extends 'a' | 'b' | 'c'>(name: T) => ({
[name]: name,
[`${name}Copy`]: name
})
const result = foobar('a') // typeof result is { [x: string]: "a" }
How to type a computed property name here?如何在此处键入计算的属性名称?
I want foobar('a')
to return { a: "a", aCopy: "a" }
instead of { [x: string]: "a" }
.我希望
foobar('a')
返回{ a: "a", aCopy: "a" }
而不是{ [x: string]: "a" }
。
You can explicitly tell typescript about the return type您可以明确告诉 typescript 关于返回类型
const foobar = <T extends 'a' | 'b' | 'c'>(name: T) => ({ [name]: name }) as Record<T, T>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.