Constructor (constructor)
Constructor là function được thực thi khi new class. Constructor là nơi implement xử lý khởi tạo instance property. Constructor trong JavaScript được viết bằng cú pháp constructor.
tsclass Person {constructor(name) {// ...}}
tsclass Person {constructor(name) {// ...}}
Type annotation cho constructor
Trong TypeScript, type annotation cho tham số constructor giống như cách type annotation cho function.
tsclassPerson {constructor(name : string) {// ...}}
tsclassPerson {constructor(name : string) {// ...}}
Không thể type annotation cho giá trị trả về của constructor. Giá trị trả về của constructor đương nhiên là instance của class, nên không cần phải báo cho compiler biết qua type annotation.
Truyền tham số cho constructor
Cách truyền tham số cho constructor trong JavaScript gần giống với cách gọi function. Điểm khác là có thêm toán tử new.
tsnewPerson ("Alice");
tsnewPerson ("Alice");
Async hóa constructor
Trong TypeScript, không thể async hóa constructor. Không thể viết như sau:
tsclass Person {async constructor(name: string) {// ...}}
tsclass Person {async constructor(name: string) {// ...}}
Nếu nhất định muốn async hóa, hãy chuẩn bị factory method trả về instance của class và thực thi xử lý async trong method đó.
tsclass Person {static async create(name: string): Promise<Person> {// Xử lý asyncreturn new Person(name);}constructor(name: string) {// ...}}
tsclass Person {static async create(name: string): Promise<Person> {// Xử lý asyncreturn new Person(name);}constructor(name: string) {// ...}}
Thông tin liên quan
📄️ Constructor shorthand
Không thể đặt access modifier cho tham số của method, nhưng constructor là trường hợp đặc biệt.