定义
装饰器是一种特殊类型的声明,可以用在类声明、方法、属性或者参数上。它是用来给附着的主体进行装饰,添加额外的行为。
装饰器使用@expression这种形式,expression求值后必须为一个函数。
方法装饰器
1 | let validate = function (target: any, propertyKey: string, descriptor: PropertyDescriptor) { |
使用场景
1 | // 假如实参为空时报错 |
装饰器工厂
1 | function god(name: string) { |
类装饰器
类装饰器表达式会在运行时当作函数被调用,类的构造函数作为其唯一的参数。
1 | function sealed(constructor: Function) { |
访问器装饰器
和函数装饰器一样,只不过是装饰于访问器上的。
1 | function god(name: string) { |
属性装饰器
1 | function god(target, propertyKey: string) { |
参数装饰器
1 | const required = function (target, propertyKey: string, parameterIndex: number) { |