请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Object.setPrototypeOf在es5和es6下编译的问题。

您好,老师!
当我尝试在es5下编译时,会报’not exist‘的异常,在es6下可顺利通过。
图片描述

课程项目tsconfig.json文件配置的target是’es5’, 为什么编译时就不报错呢?
图片描述

正在回答 回答被采纳积分+3

2回答

ustbhuangyi 2020-01-17 16:40:31

https://img1.sycdn.imooc.com/szimg/5e2172f509663ade07520238.jpg
目标 es5

0 回复 有任何疑惑可以回复我~
ustbhuangyi 2020-01-17 13:23:41

https://stackoverflow.com/questions/52402166/property-setprototypeof-does-not-exist-on-type-objectconstructor

参考这个

export class KnownError extends Error {
 public isKnownError: boolean = true;

 constructor(message: string) {
   super(message);
   this.message = message;
   //good enough solution, transpiled to ES5
   (<any>Object).setPrototypeOf(this, KnownError.prototype)
 }
}

上述代码我编译目标 es5 是没问题的。

0 回复 有任何疑惑可以回复我~
  • 提问者 刘津馨 #1
    是的,老师! 这个文章我也查到了。
    我想问的是,
    我们的课程项目tsconfig.json文件配置的target是’es5’, 为什么编译时就不报错呢?我对webpack不是特别懂!
    回复 有任何疑惑可以回复我~ 2020-01-17 13:33:19
  • ustbhuangyi 回复 提问者 刘津馨 #2
    这个和 webpack 无关,Object.setPrototypeOf 也是可以编译到 es5 的呀。
    回复 有任何疑惑可以回复我~ 2020-01-17 13:44:50
  • 提问者 刘津馨 回复 ustbhuangyi #3
    那请问我们的课件里默认是用es5 还是es6编译的?然后是在哪里设置的呢?
    回复 有任何疑惑可以回复我~ 2020-01-17 16:25:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信