Định nghĩa một abstract class trong TypeScript bằng cách sử dụng từ khóa abstract
. Abstract class chủ yếu được sử dụng để các lớp khác kế thừa từ chúng. Chúng ta không thể tạo một thể hiện của một abstract class.
Một abstract class thường bao gồm một hoặc nhiều phương thức trừu tượng (abstract method) hoặc các khai báo thuộc tính. Lớp kế thường abstract class phải định nghĩa tất cả các phương thức trừu tượng.
Abstract class sau khai báo một phương thức trừu tượng find
và một phương thức bình thường display
.
abstract class Person {
name: string;
constructor(name: string) {
this.name = name;
}
display(): void{
console.log(this.name);
}
abstract find(string): Person;
}
class Employee extends Person {
empCode: number;
constructor(name: string, code: number) {
super(name); // must call super()
this.empCode = code;
}
find(name:string): Person {
// execute AJAX request to find an employee from a db
return new Employee(name, 1);
}
}
let emp: Person = new Employee("James", 100);
emp.display(); //James
let emp2: Person = emp.find('Steve');
Trong ví dụ trên, Person
là một abstract class bao gồm một thuộc tính và hai phương thức, một trong số đó được khai báo là abstract. Phương thức find()
là một phương thức trừu tượng và do đó phải được định nghĩa trong lớp kế thừa. Lớp Employee
kế thừa lớp Person
và vì vậy nó phải định nghĩa phương thức find()
. Lớp Employee
phải triển khai tất cả các phương thức trừu tượng của lớp Person
, nếu không trình biên dịch sẽ hiển thị lỗi.
The class which implements an abstract class must call super()
in the constructor.
Abstract class cũng có thể có các thuộc tính trừu tượng, như được trình bày ở ví dụ bên dưới.
abstract class Person {
abstract name: string;
display(): void{
console.log(this.name);
}
}
class Employee extends Person {
name: string;
empCode: number;
constructor(name: string, code: number) {
super(); // must call super()
this.empCode = code;
this.name = name;
}
}
let emp: Person = new Employee("James", 100);
emp.display(); //James
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Namespace được sử dụng để nhóm logic các chức năng. Namespace có thể bao gồm các interface, lớp, hàm và biến để hỗ trợ một nhóm các chức năng liên quan.
Trong hướng dẫn này bạn sẽ tìm hiểu về từ khóa readonly, static và cách sử dụng chúng trong TypeScript.
TypeScript có ba từ khóa kiểm soát quyền truy cập: public, private và protected để kiểm soát khả năng hiển thị của các thành phần dữ liệu của nó.
Trong phần này, chúng ta sẽ tìm hiểu về module trong TypeScript. Cách export, import, biên dịch và sử dụng các module trong ứng dụng web.