gpt4 book ai didi

javascript - 装饰器和私有(private)字段 javascript

转载 作者:行者123 更新时间:2023-12-05 00:38:11 25 4
gpt4 key购买 nike

我发现自己试图将装饰器与 native javascript 私有(private)属性 (#) 一起使用,而这些正在使用的第一个“识别”不起作用。
我通过使用 class-validator 确定了这一点我的值对象的私有(private)属性上的装饰器。
我在代码编辑器中遇到的错误是:装饰器在这里无效
例子:

import { IsString } from 'class-validator';

Class Person {
@IsString()
#name: string;

constructor(name: string) {
this.#name = name;
}

get name(): string {
return this.#name;
}
}

最佳答案

VLAZ建议的Okey:

Private fields in JS are completely private and inaccessible to anything from outside. Thus it makes sense they cannot be decorated - there is no way for the decorator to access them.


这是完全正确的,所以当我仔细查看值对象时,我意识到它确实有 public get属性,因此通过测试可以在这些属性上使用装饰器。
留下类似的东西:
import { IsString } from 'class-validator';

Class Person {
#name: string;

constructor(name: string) {
this.#name = name;
}

@IsString()
get name(): string {
return this.#name;
}
}

关于javascript - 装饰器和私有(private)字段 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69775014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com