装饰器:装饰器是一种与类相关的语法,用来注释或者修改类和类方法的属性,装饰器一般和class类相关,普通函数不要使用
装饰器的本质是函数,它可以给类、属性或者方法增加一些其他的东西,扩展功能
修饰器对类的行为的改变,是代码编译时发生的(不是TypeScript编译,而是js在执行机中编译阶段),而不是在运行时。这意味着,修饰器能在编译阶段运行代码。也就是说,修饰器本质就是编译时执行的函数。
在Node.js环境中模块一加载时就会执行
(1)例子:
function decorator (target:any, key:any, descriptor:any) {
console.log(target)
console.log(key)
console.log(descriptor)
}
class Test {
private name:string;
constructor(name:string) {
this.name = name
}
@decorator
getName () {
return this.name
}
}
执行该文件:ts-node index.ts
就会执行 decorator 这个函数
输出:
下面看下装饰器的这三个参数:
target : 作用于谁,对于静态成员来说是类的构造函数,对于实例成员来说是类的原型对象;<