购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.6 TypeScript装饰器

装饰器是一种特殊类型的声明,它能够被附加到类、方法、属性或参数上,可以修改类的行为,通俗地讲装饰器就是一种方法,可以注入类、方法、属性或参数来扩展类、方法、属性或参数的功能。常见的装饰器有属性装饰器、方法装饰器、参数装饰器、类装饰器。

装饰器的写法:普通装饰器(无法传参)、装饰器工厂(可传参),装饰器是ES7的标准特性之一。

装饰器的执行顺序:属性>方法>方法参数>类。

4.6.1 属性装饰器

属性装饰器会被应用到属性描述上,可以用来监视、修改或者替换属性的值。

属性装饰器会在运行时传入下列两个参数:

(1)对于静态成员来讲是类的构造函数,对于实例成员来讲是类的原型对象。

(2)成员的名字。

属性装饰器如代码示例4-42所示。

代码示例4-42

4.6.2 方法装饰器

方法装饰器会被应用到方法描述上,可以用来监视、修改或者替换方法定义。

方法装饰器会在运行时传入下列3个参数:

(1)对于静态成员来讲是类的构造函数,对于实例成员来讲是类的原型对象。

(2)成员的名字。

(3)成员的属性描述符。

方法装饰器如代码示例4-43所示。

代码示例4-43

4.6.3 参数装饰器

参数装饰器表达式会在运行时当作函数被调用,可以使用参数装饰器为类的原型增加一些元素数据,传入下列3个参数:

(1)对于静态成员来讲是类的构造函数,对于实例成员来讲是类的原型对象。

(2)方法的名字。

(3)参数在函数参数列表中的索引。

参数修饰器如代码示例4-44所示。

代码示例4-44

4.6.4 类装饰器

类装饰器:普通装饰器(无法传参),如代码示例4-45所示。

代码示例4-45

类装饰器:装饰器工厂(可传参),如代码示例4-46所示。

代码示例4-46 JQZexhQGxmQRwrlIDyv3i7qQDSPddb4rdg+ygumiwz4/FcJXAs12824WOiqvs8Lj

点击中间区域
呼出菜单
上一章
目录
下一章
×