TS之类装饰器

类装饰器在TS中用于增强类的功能,它是一个在类定义后立即运行的函数。装饰器可以返回void或新的类,如果返回新的类,原类会被替换。在有多个装饰器时,它们按从下往上的顺序执行。文章讨论了如何使用装饰器、装饰器的返回值以及装饰器的运行顺序,并提出关于约束类构造函数参数数量的面试问题。
摘要由CSDN通过智能技术生成

类装饰器

装饰器本身是一个函数,该函数有一个参数,参数本身是该类(构造函数)

使用装饰器

@装饰器

在TS中,如何约束一个变量为类

  • Function

  • new(参数)=>object

在TS中使用装饰器,要配置"experimentalDecorators": true,

装饰器函数的运行是在类定义之后就马上运行。

装饰器在编译后存在,本身是js存在的语法

类装饰器可以具有的返回值

  • void:仅运行函数
  • 返回一个新的类:会将新的类替换掉装饰目标
function test(target:new()=>object){
   
    return class B extends target{
   

    }
}

@test
class A{
   

}

const a = new A();

console.log(a); //B {}

  • 解读

首先装饰器可以用到其它类,类装饰器可以增强类的功能。

上面例子,test装饰器返回一个B类,类A使用装饰器test,那么a对象就是B类创建出来的,这样就可以增强A类的功能。

但是存在一个问题,就是类型检查问题

function test(target:new()=>object)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值