招摇-API /招摇-代码生成生成以下代码:TS2536:类型 'keyof T2' 不能被用于索引类型 'T1'
private extendObj<T1,T2>(objA: T1, objB: T2) {
for(let key in objB){
if(objB.hasOwnProperty(key)){
objA[key] = objB[key];
}
}
return <T1&T2>objA;
}
编译时其产生错误:
TS2536 :类型'keyof T2'不能用于索引类型'T1'
有人请解释为什么一个对象的关键字不能用于访问另一个对象的关键字吗?是推断某种特殊类型的关键吗?
什么是在打字稿中复制对象属性的正确方法?
如果没有保证密钥是相同类型的,我可以看到具有一个问题,因为编译器。如果您将'key'的类型指定为通用类型,会发生什么? – Carcigenicate
它可以工作,如果另一个keyX被声明在周期之外。但这很奇怪。如果它抱怨价值,我会承认,但这是关键。 – user656449