TypeScript 类
TypeScript中的类
TypeScript是一种开源的编程语言,它是JavaScript的一个超集,其添加了静态类型和其他一些面向对象的特性,包括类。
创建类
在TypeScript中,使用class
关键字来创建类。类可以包含属性、方法和构造函数。下面是创建类的一些示例:
class Person {
// 属性
name: string;
age: number;
// 构造函数
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
// 方法
sayHello() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
}
}
在上面的示例中,我们创建了一个Person
类,它具有两个属性name
和age
,一个构造函数和一个sayHello
方法。构造函数使用this
关键字来引用当前实例,并将传递进来的name
和age
分配给相应的属性。sayHello
方法在控制台打印出一条问候语,其中使用类的属性。
实例化类
创建类后,我们需要使用new
关键字来实例化类。下面是一个示例:
const john = new Person('John', 30);
john.sayHello(); // 输出 "Hello, my name is John and I'm 30 years old."
上面的代码创建了一个john
实例,使用构造函数将name
设置为John
,将age
设置为30。然后调用sayHello
方法来打印问候语。
访问类的属性和方法
我们可以通过点号来访问类实例的属性和方法。例如:
const mary = new Person('Mary', 25);
console.log(mary.name); // 输出 "Mary"
mary.sayHello(); // 输出 "Hello, my name is Mary and I'm 25 years old."
上面的代码创建了一个mary
实例,然后使用点号访问name
属性和sayHello
方法。
继承类
在TypeScript中,可以使用extends
关键字来继承类。下面是一个示例:
class Employee extends Person {
jobTitle: string;
constructor(name: string, age: number, jobTitle: string) {
super(name, age);
this.jobTitle = jobTitle;
}
introduce() {
console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old, and my job title is ${this.jobTitle}.`);
}
}
在上面的示例中,我们定义了一个Employee
类,继承了Person
类。它新增了一个jobTitle
属性,然后覆盖了Person
类的构造函数,调用了父类super
方法并为jobTitle
赋值。然后它定义了一个新的introduce
方法,打印出一个更详细的自我介绍。这个新的方法引用了从父类继承的name
和age
属性,以及它自己的jobTitle
属性。
现在我们可以实例化一个Employee
对象:
const jack = new Employee('Jack', 35, 'Manager');
jack.introduce(); // 输出 "Hello, my name is Jack, I'm 35 years old, and my job title is Manager."
总结
TypeScript中的类允许我们创建对象,并使用面向对象的方式封装属性和行为。我们可以使用构造函数来初始化对象的属性,使用点号来访问它们,并通过继承来扩展现有的类。这是TypeScript提供的一些最基本的面向对象的概念,可以帮助我们更好地组织和管理代码。