【发布时间】:2021-12-14 21:22:59
【问题描述】:
我发现自己尝试使用带有原生 javascript 私有属性 (#) 的装饰器,而这些正在使用的第一个“识别”不起作用。
我通过在我的值对象的私有属性上使用 class-validator 装饰器来识别这一点。
我在代码编辑器中遇到的错误是:Decorators are not valid here
例子:
import { IsString } from 'class-validator';
Class Person {
@IsString()
#name: string;
constructor(name: string) {
this.#name = name;
}
get name(): string {
return this.#name;
}
}
【问题讨论】:
-
JS 中的私有字段是完全私有的,任何东西都无法从外部访问。因此,它们不能被装饰是有道理的——装饰器无法访问它们。
标签: javascript typescript decorator private class-validator