Trong TypeScript, lớp (class) là một cấu trúc cơ bản trong lập trình hướng đối tượng, cho phép bạn tổ chức mã và xây dựng các đối tượng với các thuộc tính và phương thức. Việc sử dụng lớp giúp mã trở nên dễ đọc và bảo trì hơn, đồng thời cung cấp một cách tiếp cận có tổ chức để quản lý các đối tượng trong ứng dụng của bạn.

Cú pháp cơ bản để tạo một lớp

Dưới đây là cú pháp cơ bản để định nghĩa một lớp trong TypeScript:

class ClassName {
    // Thuộc tính
    propertyName: type;

    // Constructor
    constructor(parameter: type) {
        this.propertyName = parameter;
    }

    // Phương thức
    methodName(): returnType {
        // Thực hiện một số hành động
    }
}

Ví dụ về lớp trong TypeScript

Để hiểu rõ hơn về cách tạo và sử dụng lớp, dưới đây là một ví dụ đơn giản về lớp Person, đại diện cho một người với tên và tuổi:

class Person {
    // Thuộc tính
    private name: string;
    private age: number;

    // Constructor
    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    // Phương thức để hiển thị thông tin
    public introduce(): void {
        console.log(`My name is ${this.name} and I am ${this.age} years old.`);
    }
}

// Sử dụng lớp
const person1 = new Person("Alice", 30);
person1.introduce(); // Output: "My name is Alice and I am 30 years old."

Phân tích ví dụ

  1. Khai báo lớp: Chúng ta định nghĩa lớp Person với hai thuộc tính: nameage. Các thuộc tính này được khai báo là private, có nghĩa là chúng không thể được truy cập từ bên ngoài lớp.
  2. Constructor: Constructor là một phương thức đặc biệt được gọi khi tạo một thể hiện của lớp. Trong ví dụ trên, constructor nhận hai tham số (nameage) và gán giá trị cho các thuộc tính tương ứng.
  3. Phương thức: Phương thức introduce được định nghĩa để hiển thị thông tin của đối tượng. Nó sử dụng thuộc tính của lớp để tạo ra một chuỗi và in ra màn hình.
  4. Tạo đối tượng: Cuối cùng, chúng ta tạo một thể hiện của lớp Person bằng cách sử dụng từ khóa new, và gọi phương thức introduce để in ra thông tin.

Kế thừa trong TypeScript

TypeScript hỗ trợ kế thừa, cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác. Dưới đây là ví dụ về cách sử dụng kế thừa:

class Employee extends Person {
    private position: string;

    constructor(name: string, age: number, position: string) {
        super(name, age); // Gọi constructor của lớp cha
        this.position = position;
    }

    public introduce(): void {
        super.introduce(); // Gọi phương thức của lớp cha
        console.log(`I work as a ${this.position}.`);
    }
}

// Sử dụng lớp Employee
const employee1 = new Employee("Bob", 28, "Developer");
employee1.introduce();
// Output:
// My name is Bob and I am 28 years old.
// I work as a Developer.

Phân tích ví dụ kế thừa

  1. Kế thừa: Lớp Employee kế thừa từ lớp Person, sử dụng từ khóa extends. Điều này cho phép lớp Employee sử dụng các thuộc tính và phương thức của lớp Person.
  2. Gọi constructor của lớp cha: Trong constructor của lớp Employee, chúng ta sử dụng từ khóa super để gọi constructor của lớp cha và khởi tạo các thuộc tính kế thừa.
  3. Ghi đè phương thức: Phương thức introduce trong lớp Employee ghi đè phương thức cùng tên trong lớp Person. Chúng ta có thể gọi phương thức của lớp cha bằng cách sử dụng super.introduce().

Kết luận

Việc tạo lớp trong TypeScript là một phương pháp mạnh mẽ để tổ chức và quản lý mã của bạn trong các ứng dụng lớn và phức tạp. Lớp cho phép bạn sử dụng các thuộc tính và phương thức để tạo ra các đối tượng, giúp mã trở nên rõ ràng và dễ bảo trì hơn. Với khả năng kế thừa, TypeScript cung cấp tính năng linh hoạt để xây dựng cấu trúc mã mạnh mẽ và hiệu quả. Hãy áp dụng các khái niệm này để tạo ra những ứng dụng tốt hơn trong dự án của bạn!