为什么会报错啊?
来源:3-23 高级类型 - 交叉类型

慕莱坞0998854
2019-06-30
老师在课程中演示的代码如下
//
let result = {} as T & U
for(let id in first){
result[id] = first[id]
}
//
问题:1> 既然result是T和U的联合类型,为什么报错信息是“Type T is not assignable to type U”?这里只是给对象多赋值一些属性啊,我为什么没看懂这个报错信息?老师能不能解释下这个报错信息?
2> 我们知识想给对象赋值一些属性,如果是js里面就无需关注类型,我感觉TS反而成了一种累赘啊?
写回答
1回答
-
ustbhuangyi
2019-06-30
1. result中的元素 是 T & U 类型,而 first 中的元素是 T 类型,不能把 T 类型赋值给 T&U 类型。
2. 这就是 TypeScript 的类型约束,有的时候就是要丧失一些灵活性。032019-08-08
相似问题