javascript - Endre typescript-dekoratør dynamisk
Jeg har et felt i en TypeScript-klasse som har en dekoratør A, men jeg vil endre dekoratøren fra A til B når det kjører i et spesifikt miljø. Kan dette oppnås i TypeScript?
class SampleClass {
@DecoratorA
sampleField;
constructor() {
if(condition) {
// change DecoratorA to DecoratorB
}
}
}
Er det mulig å endre DecoratorA til DecoratorB i konstruktøren basert på en eller annen betingelse?
Svar #1
Så som foreslått i kommentarer, lag en dekoratørfabrikk:
function AorB() {
return condition ? DecoratorA : DecoratorB;
}
Og bruk det (vær oppmerksom på parentesene):
class SampleClass {
@AorB()
sampleField;
}
