Class 具有不同数量变量的装饰器
Class decorator with different number of variables
我想创建一个装饰器,它会在需要时覆盖一些变量。像
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
return class extends target {
field = 1;
field2 = 2;
};
};
但是一个 类 应该只有 field
,其他的只有 field2
,有些应该两者都有。
我试过了,没用
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
if (...) {
target.prototype.field = 1;
}
if (...) {
target.prototype.field2 = 2;
}
return class extends target {};
};
你 return 只是一个 class 的东西。所以,做一个构造函数
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
return class extends target {
constructor(...args1: any[]) {
super(...args1);
if (...) {
this.field = 1;
}
if (...) {
this.field2 = 2;
}
}
};
};
我想创建一个装饰器,它会在需要时覆盖一些变量。像
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
return class extends target {
field = 1;
field2 = 2;
};
};
但是一个 类 应该只有 field
,其他的只有 field2
,有些应该两者都有。
我试过了,没用
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
if (...) {
target.prototype.field = 1;
}
if (...) {
target.prototype.field2 = 2;
}
return class extends target {};
};
你 return 只是一个 class 的东西。所以,做一个构造函数
const Decorator = <T extends { new (...args: any[]): any }>(target: T) => {
return class extends target {
constructor(...args1: any[]) {
super(...args1);
if (...) {
this.field = 1;
}
if (...) {
this.field2 = 2;
}
}
};
};