TypeScript中是否可以使用箭头函数语法定义getter属性
TypeScript getter访问器能否使用箭头函数简写?
不可以,TypeScript 以及其底层遵循的 JavaScript 语法规范,都不支持在 getter 访问器属性中使用箭头函数的写法。
具体原因如下:
- 语法规则限制:getter 访问器的标准语法固定为
get 属性名() { 逻辑代码 }格式,并未适配箭头函数的写法,你提到的get someprop() => a === b写法会在编译/运行阶段直接抛出语法错误。 - 箭头函数本身的特性冲突:箭头函数没有独立的
this绑定,会继承外层作用域的this,就算语法允许这种写法,getter 内的this也不会指向当前类的实例,完全不符合 getter 面向实例属性取值的设计场景。
如果你只是想简化代码,注意不要把 getter 和箭头函数类字段混淆,二者的使用方式完全不同,参考示例:
class Demo { a = 3; b = 4; // 合法的getter写法,访问时直接取demo.someprop即可 get someprop(): boolean { return this.a === this.b; } // 这是箭头函数实例方法,不是getter,必须调用demo.someprop2()才能拿到返回值 someprop2 = () => this.a === this.b; // 非法写法,直接报错 // get wrongProp() => this.a === this.b; }
内容的提问来源于stack exchange,提问作者marcg
相关产品推荐
相关产品推荐

