TypeScript系列教程十一《装饰器》 -- 类装饰器

  • 是一个函数

  • 函数的参数是一个继承函数类型的泛型函数

  • 返回可以是一个装饰器函数或者不返回(工厂模式返回函数后面介绍)

declare type ClassDecorator = (target: TFunction) => TFunction | void;

类装饰器


案例思路描述:

  1. 创建一个学生类

  2. 让学生类具拥有谈钢琴的技能

  3. 同时艺术家也想拥有弹钢琴的技能

我们用组合的思想,可以将弹钢琴的技能部分单独实现出来,谁想拥有引入即可。

装饰器相同的道理,只需要实现这个装饰器即可,下面用代码实现。

const musicDecorator : ClassDecorator = (target:Function)=>{

target.prototype.playPiano = () => {

console.log(‘弹钢琴’);

}

}

@musicDecorator

class Student {

}

@musicDecorator

class Artist{

}

var xiaoming = new Student();

(xiaoming).playPiano()

var jay = new Artist();

(jay).playPiano()

控制台输出:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值