tsconfig.json的target配置为es6之后,for...in失效
·
问题描述
在学习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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)