问题描述

在学习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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐