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

来源:6-4 错误信息增强 - 创建 AxiosError 类

刘津馨

2020-01-17

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

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

写回答

2回答

ustbhuangyi

2020-01-17

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

0
0

ustbhuangyi

2020-01-17

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
3
刘津馨
回复
ustbhuangyi
那请问我们的课件里默认是用es5 还是es6编译的?然后是在哪里设置的呢?
2020-01-17
共3条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程