Lesson 20 of 56 · Typescript
Decorators (Experimental) – Class & Method
Duration: 20 minutes
Enabling Decorators
Add to tsconfig.json:
"experimentalDecorators": true,
"emitDecoratorMetadata": true
Class Decorator Example
function sealed(constructor: Function) {
Object.seal(constructor);
Object.seal(constructor.prototype);
}
@sealed
class Service {
// …
}
Method Decorator – Logging
function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const original = descriptor.value;
descriptor.value = function (...args: any[]) {
console.log(`Calling ${propertyKey} with`, args);
return original.apply(this, args);
};
}
class MathOps {
@log
add(a: number, b: number) {
return a + b;
}
}