由于不兼容的类型,以下代码段在y
的分配上失败:
function foo<T>() {
let x: { [P in keyof T]: number }
let y: { [k: string]: number } = x;
}
但是,文档说明:
T型密钥被认为是字符串的子类型。
如果这是真的,为什么分配失败?
为keyof T
分配string
,并将{ [P in 'foo']: number }
分配给{ [P in string]: number }
也可以。