TS的装包拆包以及装饰器

188 阅读1分钟

我们先编写一个带有get和set的类型

Image.png

接下来我们给它添加上类型

Image.png

  • 这就是一个装包的过程,我们把一个对象循环了一遍,重写了它里面的某个属性

拆包

Image.png

我们写一个封装axios的例子

Image.png

Image.png

  • Promise传的泛型就是成功后返回值的类型

但是上述封装会有一个问题,我们在Promise成功后拿到的数据里没有code等其它信息,所以我们可以采用装包,再包一层

Image.png

Image.png

使用时

Image.png

装饰器

  • 它是一个试验性语法,这个语法可能会有所更改
  • 对类的扩展
  • 想使用这个试验性语法,要先去tsconfig中对应的字段打开

Image.png

对类的修饰

Image.png

  • 这个target指代的是类本身

但是这样写会有一个问题,就是使用这个类,无法点出来这个speak方法,那么我们可以给这个方法加上类型

Image.png

  • 直接在类里写类型既可以描述实例类型也可以描述原型类型
  • 原型上的属性扩展,需要描述可以在类中

对类属性的修饰

Image.png

  • 属性装饰器,target指代的是类的原型

类方法装饰器

Image.png

  • target指代的也是原型,descriptor属性描述其