TypeScript 构造函数
在TypeScript中,构造函数(Constructor)是面向对象编程中的一个核心概念。它用于在创建对象时初始化对象的属性。构造函数是类的一个特殊方法,当使用 new
关键字创建类的实例时,构造函数会自动调用。
什么是构造函数?
构造函数是类中的一个特殊方法,通常用于初始化对象的属性。它的名称必须与类名相同,并且没有返回类型(包括 void
)。在TypeScript中,构造函数使用 constructor
关键字定义。
基本语法
class ClassName {
// 属性声明
propertyName: type;
// 构造函数
constructor(parameter: type) {
this.propertyName = parameter;
}
}
示例
让我们通过一个简单的例子来理解构造函数的工作原理。
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
const person = new Person("Alice", 30);
console.log(person.name); // 输出: Alice
console.log(person.age); // 输出: 30
在这个例子中,Person
类有两个属性:name
和 age
。构造函数接受两个参数 name
和 age
,并将它们赋值给类的属性。当我们使用 new Person("Alice", 30)
创建一个 Person
实例时,构造函数会自动调用,并将 "Alice"
和 30
分别赋值给 name
和 age
属性。
构造函数的参数
构造函数可以接受任意数量的参数,这些参数用于初始化对象的属性。参数的类型可以是任何有效的TypeScript类型。
可选参数
在TypeScript中,构造函数的参数可以是可选的。可选参数使用 ?
标记。
class Person {
name: string;
age?: number;
constructor(name: string, age?: number) {
this.name = name;
this.age = age;
}
}
const person1 = new Person("Alice");
const person2 = new Person("Bob", 25);
console.log(person1.age); // 输出: undefined
console.log(person2.age); // 输出: 25
在这个例子中,age
参数是可选的。如果创建 Person
实例时没有提供 age
参数,则 age
属性将为 undefined
。
默认参数
构造函数还可以使用默认参数。如果调用构造函数时没有提供某个参数,则使用默认值。
class Person {
name: string;
age: number;
constructor(name: string, age: number = 18) {
this.name = name;
this.age = age;
}
}
const person1 = new Person("Alice");
const person2 = new Person("Bob", 25);
console.log(person1.age); // 输出: 18
console.log(person2.age); // 输出: 25
在这个例子中,age
参数的默认值为 18
。如果创建 Person
实例时没有提供 age
参数,则 age
属性将默认为 18
。