类
类
TypeScript是一种静态类型的编程语言,它是JavaScript的超集,因此它可以使用JavaScript的所有功能,同时也提供了额外的语言特性,其中包括类和对象。
类是一种面向对象编程的概念,它是一种结构化的数据类型,它定义了一种对象的属性和方法。在TypeScript中,可以使用class关键字定义类,例如:
class Person {
private name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public sayHello(): void {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
上述代码定义了一个名为Person的类,它有两个私有属性name和age,一个构造函数,以及一个公共方法sayHello。构造函数用于在创建对象时初始化类的属性,而sayHello方法用于打印对象的属性值。
对象是类的实例,它是类的具体化,具有类中定义的属性和方法。在TypeScript中,可以使用new关键字创建类的实例,例如:
const person = new Person("Alice", 30);
person.sayHello(); // 输出 "Hello, my name is Alice and I am 30 years old."
上述代码创建了一个名为person的Person类的实例,并调用了它的sayHello方法。输出结果为"Hello, my name is Alice and I am 30 years old."。
在TypeScript中,类可以继承另一个类,这意味着一个类可以使用另一个类的属性和方法。继承使用extends关键字,例如:
class Employee extends Person {
private salary: number;
constructor(name: string, age: number, salary: number) {
super(name, age);
this.salary = salary;
}
public saySalary(): void {
console.log(`My salary is ${this.salary} dollars.`);
}
}
上述代码定义了一个名为Employee的类,它继承自Person类,并添加了一个名为salary的私有属性和一个名为saySalary的公共方法。在构造函数中,它通过调用父类的构造函数来初始化name和age属性,并初始化自己的salary属性。
可以使用与Person类相同的方式创建Employee类的实例,并调用它的方法。由于Employee类继承自Person类,因此Employee类的实例也可以调用Person类中定义的方法。