在 TypeScript 中,类 (Class) 是一种重要的概念。类是一组具有相同属性和方法的对象的抽象模板。本文将详细介绍 TypeScript 中的类,包括类的定义、构造函数、继承、访问修饰符、静态属性和方法等。
类的定义
定义一个类的语法如下:
----- --------- - -- ------- -
其中,ClassName
表示类的名称,其后是类的属性和方法。类的属性和方法可以是公共的(公共的属性和方法可以被类的实例和子类访问)、私有的(私有的属性和方法只能被类的实例访问)或受保护的(受保护的属性和方法只能被类的实例和子类访问)。
下面是一个示例:
----- ------ - ----- ------- ---- ------- ---------- - ------------------- -- ---- -- ------------- - -- ----------- ----- ------- - -
在这个示例中,我们定义了一个名为 Person
的类,并声明了两个公共的属性 name
和 age
,以及一个公共的方法 sayHello
。这个类的作用是输出一个人的姓名和年龄。
构造函数
类的构造函数被用来初始化类的实例,并可以在创建对象时接受参数。构造函数的语法如下:
----------------- ------ ----- ------ ---- - -- ------- -
下面是一个示例:
----- ------ - ----- ------- ---- ------- ----------------- ------- ---- ------- - --------- - ----- -------- - ---- - ---------- - ------------------- -- ---- -- ------------- - -- ----------- ----- ------- - - ----- ------ - --- ------------- ---- ------------------ -- --------- -- ---- -- ---- - -- -- ----- ----
在这个示例中,我们在 Person
类中添加了一个构造函数,这个构造函数接收一个 name
和一个 age
参数,然后将这些参数分别赋值给类的属性 name
和 age
。在创建一个 Person
类的实例时,我们传入相应的参数。注意,我们不需要显式地指定构造函数的返回值,构造函数的返回值是隐式地设置为创建的新实例。
继承
继承是指一个类通过扩展另一个类来获得继承类的所有属性和方法。在 TypeScript 中,继承使用关键字 extends
,其语法如下:
----- ---------- ------- ----------- - -- -------- -
下面是一个示例:
----- ------ - ----- ------- ----------------- ------- - --------- - ----- - ---------- - ------------------- -- ---- -- ---------------- - - ----- --- ------- ------ - ----------------- ------- - ------------ - ---------- - -------------- -- - ---- -- ---- -- ---------------- - - ----- --- - --- ----------- --------------- -- ---- -- - ---- -- ---- -- ----
在这个示例中,我们定义了一个名为 Animal
的基类,它有一个属性 name
和一个方法 sayHello
。然后我们定义了一个名为 Cat
的子类,它继承了 Animal
类,并重写了 sayHello
方法。
访问修饰符
访问修饰符用于限制类的属性和方法的访问权限。在 TypeScript 中,有三种访问修饰符:public、private 和 protected。
- public:公共的,可以被类的实例和子类访问,默认的访问修饰符就是 public。
- private:私有的,只能被类的实例访问。
- protected:受保护的,只能被类的实例和子类访问。
访问修饰符的语法是放在属性或方法的前面,如下面的示例:
----- ------ - ------ ----- ------- ------- ---- ------- --------- -------- ------- ----------------- ------- ---- ------- -------- ------- - --------- - ----- -------- - ---- ------------ - -------- - ---------- - ------------------- -- ---- -- ------------- - -- ----------- ----- ------- - - ----- ------- ------- ------ - ----------------- ------- ---- ------- -------- ------- - ----------- ---- --------- - -------------- - --------------- ------- -- ------------------- - - ----- ------ - --- ------------- --- ----------- ------------------------- -- ------ ------------------------ -- -------------------------------- ---------------------------- -- -------------------------------------- ----- ------- - --- --------------- --- ------------ -------------------------- -- ------- ----------------------------- -- -------------------------------------- ----------------------- -- ----- ------- -- ---------
在这个示例中,我们定义了一个名为 Person
的类,并定义了 name
、age
和 address
三个属性以及一个 sayHello
方法。其中,name
属性是公共的,而 age
和 address
两个属性是私有的和受保护的。
然后我们定义了一个名为 Student
的类,它继承自 Person
类,并通过调用 super
函数来调用父类的构造函数。我们还定义了一个名为 printAddress
的方法,它可以访问父类的受保护属性 address
。最后,我们分别创建了一个 Person
类的实例和一个 Student
类的实例,并分别尝试访问属性和调用方法。
静态属性和方法
静态属性和方法是属于类本身而不是它的实例的属性和方法,它们可以像普通属性和方法一样访问,而不需要创建类的实例。在 TypeScript 中,可以使用 static
关键字来定义一个静态属性或方法。
静态属性和方法的语法如下:
----- --------- - ------ ------------- ------------- ------ ---------------- -------- ----- -------- ---- - -- ------- - -
下面是一个示例:
----- --------- - ------ --- ------ - ------------- ------ --------- ------- ----- -------- ------ - ------ ---- - ----- - - -------------------------- -- --------------- ---------------------------- ---- -- ----
在这个示例中,我们定义了一个名为 MathUtils
的类,并定义了包含静态属性 PI
和静态方法 add
两个成员。然后我们直接调用 MathUtils.PI
和 MathUtils.add
,而不需要创建 MathUtils
类的实例。
总结
本文介绍了 TypeScript 中的类,包括类的定义、构造函数、继承、访问修饰符和静态属性和方法等。学习和掌握 TypeScript 中的类是成为一名优秀的前端工程师的必备技能之一,希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6649b36ad3423812e489cbba