TypeScript 中的类装饰器

阅读时长 3 分钟读完

什么是类装饰器

类装饰器是 TypeScript 中的一种特殊的函数,它可以用于修饰类及其成员。类装饰器可以带有参数,也可以被其他装饰器修饰。

类装饰器是装饰器中最常用的一种,可以使我们在不改变原来类的情况下,为类添加新的特性,比如:日志记录、时间统计等。

类装饰器的语法

类装饰器通过在类的声明之前使用 @ 符号进行标识,语法如下:

类装饰器的应用

类装饰器可以用于实现多种功能,以下介绍其中两种常见的应用:

记录类日志

在一个类被实例化时,记录其创建时间及构造参数,并打印到控制台上,可以使用如下类装饰器:

-- -------------------- ---- -------
-------- ---------------- ---- -
  ------ ----- ------- ------ -
    -------------------- ------ -
      ---------------
      ------------------- ------------------------- ------- -------------- ---- ------- ------
    -
  -
-

---------
----- ------ -
  ------------------- ----- ------- ------- ---- ------- --
-

----- - - --- ------------- ----

执行结果:

实现单例模式

在一个类被实例化时,控制实例的创建数量并保证全局只有一个实例(单例模式),可以使用如下类装饰器:

-- -------------------- ---- -------
-------- ---------------------- ---- -
  --- --------- ----
  ------ ----------------- ------ -
    -- ----------- -
      -------- - --- ----------------
    -
    ------ ---------
  -
-

---------------
----- -------- -
  ------- ----- ----- - ---

  --------- ---- -
    ---------------------
  -

  -------- -
    ------ ----------
  -
-

----- --- - --- -----------
----- --- - --- -----------
--------------- --- ----- -- ----

---------------
-----------------
-------------------------- -- ------- --------
-------------------------- -- ------- --------

类装饰器的执行顺序

类装饰器会按照从下到上的顺序被执行,例如:

-- -------------------- ---- -------
-------- ------------ ---- -
    --------------------
-

-------- ------------ ---- -
    --------------------
-

-----
-----
----- ------- -
    -- ----- ----------
-

执行顺序为 log2 -> log1。

总结

类装饰器作为 TypeScript 中最常用的装饰器,可以给类及其成员添加日志、计数器、单例等功能,具有很强的扩展性和实用性。在实际项目中,可以根据需求自定义类装饰器,并灵活使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654c932a7d4982a6eb6089eb

纠错
反馈