gpt4 book ai didi

typescript 反射(reflect)公共(public)/私有(private)

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:28 28 4
gpt4 key购买 nike

我有一个假设的类

class Test {
@isThisPublic() public test1?: any;
@isThisPublic() public test2?: any;
}

现在,在 @isThisPublic() 装饰器中,我想根据它是否是公共(public)类字段来做不同的事情。有办法做到这一点吗?

谢谢!

最佳答案

TypeScript 使用 emitDecoratorMetadata compiler option 发出额外的元数据可用于 metadata proposalreflect-metadata polyfill| .

如提案所述,可以为属性类型、方法参数和方法返回值类型发出设计时元数据。

可见性不在发出的元数据中,因此在运行时装饰成员不可用。

由于可见性和装饰器都是由开发人员指定的,因此 @isThisPublic() 装饰器不会带来太多好处,因为开发人员可以指定相应的装饰器(无论它们的用途是什么):

class Test {
@Public test1?: any;
@Private private test2?: any;
}

关于 typescript 反射(reflect)公共(public)/私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51235557/

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