问题描述
在学习Typescript项目时,将tsconfig.json中的target配置为es6之后。导致项目中一段交叉类型报错。
实现案例
将一个类中的原型方法复制到另一个对象中。利用for...in
进行遍历复制
export function extend<T, U>(to: T, from: U): T & U {
for (const key in from) {
(to as T & U)[key] = from[key] as any
}
return to as T & U
}
问题定位:
由于 ES6 class
声明的内部方法是 Function.prototype.xxx
的语法糖。同时ES6
中,原型上的方法不可以枚举,导致无法通过for...in
获取对应的方法
解决问题
因此tsconfig.json
中配置更改为 target: es5