装饰器类型:
- 类 ClassDecorator
- 方法 MethodDecorator
- 属性 PropertyDecorator
- 参数 ParameterDecorator
装饰器与继承的区别
继承:比如现实生活中张三想有一辆车,那么他通过继承的形式,他的父亲送给他一辆车。这是继承的概念
装饰器:张三有有一辆车,张三想换一下轮毂想换一下方向盘,他装饰一下方向盘换一下轮毂。这是装饰器的概念
继承相当于父子继承,父有个功能,子想拿来用,可能有时候父也不想让子用,那父可以把那个功能设置成private,那子就用不了了。
装饰器,就是对一个功能的装饰,比如装饰一个类的方法,装饰一个类的属性,甚至装饰这个类,都是可以的,装饰,就像一个女孩子。父母给她漂亮的身体,后期通过化妆的形式把自己搞得更漂亮。这种装饰的形式就更加灵活一些,
继承就是拿来就用。
配置typescript装饰器环境
装饰就是给代码添加功能。我们之前学过面向对象的继承,通过class的继承。
电脑上要有node环境,并且已经安装了全局的typescript
接着就先创个文件夹,新建文件index.ts
const MoveDecorator: ClassDecorator = (constructor: Function): void => {
console.log(`装饰器 RoleDecorator `);
}
@MoveDecorator
class Tank {
constructor() {
console.log('tank 构造函数');
}
}
出现报错:
对修饰器的实验支持功能在将来的版本中可能更改。在 "tsconfig" 或 "jsconfig" 中设置 "experimentalDecorators" 选项以删除此警告。
解决办法如下:
tsc --init
得到 tsconfig.json文件
然后在文件中找到experimentalDecorators和emitDecoratorMetadata这两个配置项,把注释打开
保存然后就不会报错了。
typescript 类装饰 decorator器 使用基础
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天 点击查看活动详情