问题描述
interface foo {a: "first",b: "second"}
我正在使用类似的函数来推断类型:
const myFunc = <P extends keyof foo>(prop: P,value:SomeObject[P]) => {
return console.log(P +":" + value)
}
然后我这样做:
Object.keys({a: "something",b: "somethingelse"}).map((x,id) => {
myFunc(a,"randomtext")
})
我得到一个错误: 类型'string'的参数不能分配给类型'“ a”的参数| “ b””。
为什么会这样?
解决方法
Object.keys的返回类型始终为string [],无论传递给它的参数为何