typescript(Day7) - - 装饰器
- 总算完结啦,源码在:https://gitee.com/jimmyxuexue/basic_knowledge_of_typescript
装饰器:一种特殊的类型声明,可以附加在类的声明、方法、属性上,可以修改类的行为
通俗的将装饰器本质上就是一个方法,可以注入到类、方法、属性参数来扩展类、方法、属性的功能
常见的装饰器有:类装饰器、属性装饰器、方法装饰器、参数装饰器
装饰器的写法:普通装饰器(无法传参) 、 装饰器工厂(可传参)
装饰器是过去几年中JS最大的成就之一,已经是ES7的标准特性之一
类装饰器
类修饰器有两种形式,一种是普通修饰器(不能进行传参)第二种是装饰器工厂(可传参)
- 普通装饰器
- 装饰器工厂
属性装饰器
属性装饰器一般是工厂模式 一样的 最外面一层的函数是获取返回值的 嵌套的才是原型对象 我们就可以根据原型对象来对类的属性进行一些修改
属性装饰器表达式会在运行时当做函数被调用,传入下列两个参数
- 对于静态成员来说是类的构造函数 对于实例成员来说是类的原型对象
- 属性成员的名字
方法装饰器
方法装饰器使用起来是一样的
工厂模式下 外层的函数接收的是装饰器传参 内层函数传递三个参数 分别是 原型对象 方法名 方法描述
方法参数修饰器
方法参数修饰器在工厂模式下 第一个函数可以传递参数 嵌套的函数就是第一个参数时 targer原型对象 第二个参数时方法名 第三个参数是修饰器修饰的参数所传递的值
这种修饰器使用的较少
所有修饰器的执行顺序
执行顺序: 属性装饰器>参数装饰器>方法装饰器>类装饰器
装饰器的执行顺序是从后向前执行的 也就是说如果装饰器相同的话 写在后面的装饰器会先被执行
以下是一个案例,证明了上面所说的修饰器顺序
由以上例子就可证明出执行顺序了
typescript总结
- typescript是js的超集,新增了很多面向对象的特性
- typescript是属于编译型语言,因为最终通是需要通过编译成js浏览器和node.js才会认识
- typescript主要加了类型检测、泛型、接口、装饰器
VUE3 就是用typescript重写了一遍,所以现在撸完了typescript,可以开始撸Vue3了,暑假的前端实习也就要结束了,可以安心沉淀一下学习。