Ari*_*aga 6 javascript private decorator typescript class-validator
我发现自己尝试使用具有本机 javascript 私有属性 (#) 的装饰器,而这些正在使用的第一个“识别”不起作用。
我通过在值对象的私有属性上使用类验证器装饰器来识别这一点。
我在代码编辑器中收到的错误是:装饰器在这里无效
例子:
import { IsString } from 'class-validator';
Class Person {
@IsString()
#name: string;
constructor(name: string) {
this.#name = name;
}
get name(): string {
return this.#name;
}
}
Run Code Online (Sandbox Code Playgroud)
好的,按照 VLAZ 的建议:
JS 中的私有字段是完全私有的,外部无法访问任何内容。因此,它们不能被装饰是有道理的——装饰器无法访问它们。
这是完全正确的,所以当我仔细查看值对象时,我意识到它确实有 publicget属性,因此通过测试可以在这些属性上使用装饰器。
留下类似的东西:
import { IsString } from 'class-validator';
Class Person {
#name: string;
constructor(name: string) {
this.#name = name;
}
@IsString()
get name(): string {
return this.#name;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1445 次 |
| 最近记录: |