const join = <X, Y, T extends keyof (X & Y)>(key: T, a1: Array<X>, a2: Array<Y>) =>
a1.map(e1 =>遗憾的是,我得到了一个错误:T cannot be used to index type Y 这很奇怪,因为X & Y是交叉点类型,因此扩展keyof表达式生成的所有键都应该应用于X和Y。
我有一个使用keyof特性的简单函数: interface B { age: number; age: 'age'
test(c.age); 上面代码的问题是typescript抛出了一个错误,即type string is not assignable to keyof那么,如果keyof特性不能与对象键值一起使用,那么它还有什么意义呢?我不想添加as key
extends Partial<Record<string, number>>>({ keys data: readonly T[], dataMap[key] = sum + value // Type 'number' is not assignable to type 'T[keyof我知道你可以用
dataMap[key] = (sum +
function forIn<T extends object>(obj: T): void { // key's type is `Extract<keyofT, string>` instead of just `keyof T`}
这就引出了两个问题:
为什么key的类型是Extract<keyof T,string>而不是keyof T?对象的k