TypeScript 中的类型修饰符技巧

阅读时长 5 分钟读完

在 TypeScript 中,类型修饰符是指那些用来限制变量或函数的类型的关键字,例如 readonlypublicprotected 等关键字。这些类型修饰符可以帮助开发者更好地控制代码的行为,在避免 Bug 的同时,也能提高代码的可读性和可维护性。

本文将详细介绍 TypeScript 中的类型修饰符技巧,包括如何使用 readonlyprivate 来控制变量的修改权限,如何使用 publicprotected 来实现面向对象编程中的封装性,以及如何使用 static 来实现静态成员等常见场景。此外,还会结合示例代码来演示这些技巧的实际应用。

readonly 和 private

readonly 关键字用于将变量设置为只读,一旦被初始化后就不能再次修改它的值。而 private 关键字则用于将变量设置为私有,只能在类内部进行访问和修改。

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

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

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

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

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

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

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

------------------------ -- ------ -------- ----- -- ------- --- ---- ---------- ------ ----- ---------
---------- - --- -- ------ -------- ----- -- ------- --- ---- ---------- ------ ----- ---------
展开代码

以上代码中,name 被设置为只读变量,因此一旦被初始化后就不能再次修改它的值。而 age 被设置为私有变量,外部无法直接访问和修改它的值。但是可以通过定义 getAge()setAge() 方法来实现对 age 的访问和修改。

public 和 protected

publicprotected 关键字用于实现面向对象编程中的封装性,其中 public 表示公有,即该成员可以被任何地方访问;而 protected 表示受保护,即该成员只有在子类或其内部才能访问。

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

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

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

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

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

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

---------------------- -- ------ -------- ------ -- --------- --- ---- ---------- ------ ----- -------- --- --- -----------
--------------------------- -- ---
展开代码

在以上代码中,Animal 类中的 nametype 成员分别被设置为公有和受保护类型。而 Cat 类继承自 Animal 类,可以访问和使用 Animal 中的 namegetType() 方法,但是无法直接访问 type 成员。

可以看到,在子类 Cat 中,通过调用父类的 getType() 方法来获取父类受保护成员 type 的值,并且通过调用 getNameAndType() 方法来返回 nametype 的组合。

static

static 关键字用于定义静态成员,即该成员可以被类本身直接访问,而不需要实例化该类。

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

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

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

--------------------------- -- -
------------------------
-------------------------------- -- -
展开代码

以上代码中,通过 static 关键字定义了一个静态成员 count,并且在静态方法 increaseCount() 中修改了它的值,最后通过静态方法 getCount() 获取了它的值。可以看到,在使用静态成员时,必须使用类本身来访问。

总结

通过本文我们了解了 TypeScript 中的类型修饰符技巧,包括如何使用 readonlyprivate 来控制变量的修改权限,如何使用 publicprotected 来实现面向对象编程中的封装性,以及如何使用 static 来实现静态成员等常见场景。在实际开发中,合理利用这些类型修饰符可以帮助开发者更好地控制代码的行为并提高代码的可读性和可维护性。

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

纠错
反馈

纠错反馈