在 TypeScript 中,类型修饰符是指那些用来限制变量或函数的类型的关键字,例如 readonly
、public
、protected
等关键字。这些类型修饰符可以帮助开发者更好地控制代码的行为,在避免 Bug 的同时,也能提高代码的可读性和可维护性。
本文将详细介绍 TypeScript 中的类型修饰符技巧,包括如何使用 readonly
和 private
来控制变量的修改权限,如何使用 public
和 protected
来实现面向对象编程中的封装性,以及如何使用 static
来实现静态成员等常见场景。此外,还会结合示例代码来演示这些技巧的实际应用。
readonly 和 private
readonly
关键字用于将变量设置为只读,一旦被初始化后就不能再次修改它的值。而 private
关键字则用于将变量设置为私有,只能在类内部进行访问和修改。
-- -------------------- ---- ------- ----- ------ - -------- ----- ------- -- -- ------- ---- ------- -- -- ----------------- ------- ---- ------- - --------- - ----- -------- - ---- - -------- - ------ --------- - ----------- ------- - -------- - ---- - - ----- ------ - --- ------------ ---- ------------------------- -- ---- ----------- - ----- -- ------ ------ ------ -- ------ ------- -- -- - --------- --------- ----------------------------- -- -- ------------------ ----------------------------- -- -- ------------------------ -- ------ -------- ----- -- ------- --- ---- ---------- ------ ----- --------- ---------- - --- -- ------ -------- ----- -- ------- --- ---- ---------- ------ ----- ---------展开代码
以上代码中,name
被设置为只读变量,因此一旦被初始化后就不能再次修改它的值。而 age
被设置为私有变量,外部无法直接访问和修改它的值。但是可以通过定义 getAge()
和 setAge()
方法来实现对 age
的访问和修改。
public 和 protected
public
和 protected
关键字用于实现面向对象编程中的封装性,其中 public
表示公有,即该成员可以被任何地方访问;而 protected
表示受保护,即该成员只有在子类或其内部才能访问。
-- -------------------- ---- ------- ----- ------ - ------ ----- ------- -- -- --------- ----- ------- -- --- ----------------- ------- ----- ------- - --------- - ----- --------- - ----- - --------- - ------ ---------- - - ----- --- ------- ------ - ----------------- ------- - ----------- ----- - ---------------- - ------ ---------------------------------- - - ----- --- - --- ----------- ---------------------- -- ----- ---------------------------------- -- -------- ---------------------- -- ------ -------- ------ -- --------- --- ---- ---------- ------ ----- -------- --- --- ----------- --------------------------- -- ---展开代码
在以上代码中,Animal
类中的 name
和 type
成员分别被设置为公有和受保护类型。而 Cat
类继承自 Animal
类,可以访问和使用 Animal
中的 name
和 getType()
方法,但是无法直接访问 type
成员。
可以看到,在子类 Cat
中,通过调用父类的 getType()
方法来获取父类受保护成员 type
的值,并且通过调用 getNameAndType()
方法来返回 name
和 type
的组合。
static
static
关键字用于定义静态成员,即该成员可以被类本身直接访问,而不需要实例化该类。
-- -------------------- ---- ------- ----- ------- - ------ ----- - -- -- ---- ------ --------------- - ------------- - ------ ---------- - ------ ----------- - - --------------------------- -- - ------------------------ -------------------------------- -- -展开代码
以上代码中,通过 static
关键字定义了一个静态成员 count
,并且在静态方法 increaseCount()
中修改了它的值,最后通过静态方法 getCount()
获取了它的值。可以看到,在使用静态成员时,必须使用类本身来访问。
总结
通过本文我们了解了 TypeScript 中的类型修饰符技巧,包括如何使用 readonly
和 private
来控制变量的修改权限,如何使用 public
和 protected
来实现面向对象编程中的封装性,以及如何使用 static
来实现静态成员等常见场景。在实际开发中,合理利用这些类型修饰符可以帮助开发者更好地控制代码的行为并提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a1914548841e9894dce5dd