我正在尝试创建一个函数,它将接受一个字符串参数并返回一个以该字符串为键的对象。
例如(伪代码): test('bar') => {bar: ...}
我不确定如何为这个函数获取正确的返回类型。
这段代码给了我正确的返回类型,但 TS 编译器认为我返回的对象与返回类型不匹配?
function test<K extends string>(key: K):{[prop in K]: number} {
return { [key]: 6 } // error: not assignable
}
const foo = test<'bar'>('bar')
// foo type: {bar: number} // return type is good
像这样的东西会很好用。但是没有给我正在寻找的强类型返回类型:
function test2<K extends string>(key: K){
return { [key]: 6 }
}
const foo2 = test2<'bar'>('bar')
// foo2 type: {[x: string]: number} // no good
对此的任何帮助将不胜感激!
喵喵时光机
浮云间
萧十郎
相关分类