为什么';t typescript编译器是否警告使用变量重写getter?
如果我用变量重写getter,我会得到运行时错误。以下代码编译时没有任何警告或错误(对于ES5+): 但是,运行编译后的JS会导致:为什么';t typescript编译器是否警告使用变量重写getter?,typescript,Typescript,如果我用变量重写getter,我会得到运行时错误。以下代码编译时没有任何警告或错误(对于ES5+): 但是,运行编译后的JS会导致: Uncaught TypeError: Cannot set property foo of #<Parent> which has only a getter at new Child uncaughttypeerror:无法设置#的属性foo,该属性只有一个getter 初生子女 我不能说为什么tsc没有出错,但我可以告诉你,这是一个有趣
Uncaught TypeError: Cannot set property foo of #<Parent> which has only a getter
at new Child
uncaughttypeerror:无法设置#的属性foo,该属性只有一个getter
初生子女
我不能说为什么tsc
没有出错,但我可以告诉你,这是一个有趣的地方,TypeScript和工作方式不同。TypeScript使用[[Set]]语义(本质上是赋值)在子类中创建公共属性;JavaScript的类字段建议使用[[DefineProperty]]语义。除其他事项外,这意味着JS版本的这项技术工作得很好,用数据属性取代了基本的foo
accessor:(随着提案的进展,这是许多讨论的主题。)
Uncaught TypeError: Cannot set property foo of #<Parent> which has only a getter
at new Child