我制作了自定义属性装饰器:
export function Attr(label: MemberInfo) {
return function (target: any, key: any) {
if (!target.params) {
target.params = [];
}
label.name = key;
target.params.push(label);
};}
所以现在,我能够做到这样的事情:
@Attr{...}
test:any;
然后,有关成员测试的一些信息被添加到数组参数中。问题是我的继承级别很少,传递给函数装饰器的目标总是特定类的父级,即我希望有这样的结构:
classA -> ClassB
classA -> ClassC
ClassA是classB和ClassC的基类。 ClassB和ClassC从基类继承数组参数。基类classA添加了一些装饰器,这是两个子类应该可见的。问题是,当我在ClassB中使用装饰器和ClassC时,所有东西都被添加到基类的数组参数中。
据我了解继承,两个分类都有阵列参数的另一个“副本”。我可以做什么来分离这两个类数组,但仍然使用在基类中声明的params的核心?请帮帮我:)。