0
即时通讯试图了解keyof。Typescript + keyof。声明一个对象转换
我想描述接收对象{ a : 1, b : 'anything'}
,应该返回类似{ a: true , b: false }
功能(相同的密钥,但总是布尔值)。
但是,当我写的(例如)
function fn<K>(obj:K) : { [param:keyof K] : boolean } { /* ... */ }
... TS说我param
必须是字符串或者数字。
这很有道理,因为K可以是一张地图。我怎么能避免这个错误?我怎么能声明K是一个普通的JS对象(所以它的键总是字符串)? K extends {}
不起作用。