create react app - 在 Typescript 中调用作为箭头函数定义的方法的 super.method() 时出错
当在基类中使用箭头函数定义方法时,通过 super.method() 在派生类中调用该方法时,我会收到错误“只有基类的公共和受保护方法可以通过 'super' 关键字访问.ts(2340)”,即使该方法被定义为公共方法。
我理解在箭头函数中,上下文是词法作用域的。这会影响箭头函数中this和super的值,但是在上图中,Sun.met1 并没有被定义为箭头函数,所以我不明白为什么它不能访问 Father.met。
答案#1
你可以通过将你的 tsconfig.json 中的 target 从 es5 改为 es6 或更新版本来解决这个问题:
"target": "es6"
我不确定这是设计使然还是其他原因,但我已经打开了 https://github.com/microsoft/TypeScript/issues/32121,以从 TypeScript 团队那里获得澄清。
或者,直接使用普通方法而不是箭头函数
