在 get 访问器上使用自定义装饰器时,为什么会收到有关 'Invalid property descriptor' 的错误?
When using a custom decorator on a get accessor, why do I get an error about an 'Invalid property descriptor'?
出于某种原因,当我在 get 访问器上使用装饰器时(如下所示),我通过了编译,但总是以运行时错误消息告终:
未捕获的类型错误:无效的 属性 描述符。不能同时指定访问器和值或可写属性
为什么会发生这种情况,我该如何克服?注意:我只使用 getter 而不是 setter.
示例代码:
class ThingBox {
private things = [1,2,3,4,5]
@MyDecorator
get totalTings(): number { return this.things.length }
}
您在描述符中设置了 get
方法和 value
,但这是无效的(您可以有访问器或值,但不能同时有)。在您的情况下,您需要修补装饰器内部的 get
方法,而不是 value.
出于某种原因,当我在 get 访问器上使用装饰器时(如下所示),我通过了编译,但总是以运行时错误消息告终:
未捕获的类型错误:无效的 属性 描述符。不能同时指定访问器和值或可写属性
为什么会发生这种情况,我该如何克服?注意:我只使用 getter 而不是 setter.
示例代码:
class ThingBox {
private things = [1,2,3,4,5]
@MyDecorator
get totalTings(): number { return this.things.length }
}
您在描述符中设置了 get
方法和 value
,但这是无效的(您可以有访问器或值,但不能同时有)。在您的情况下,您需要修补装饰器内部的 get
方法,而不是 value.