TYPESCRIPT 2.X CĂN BẢN
Hàm trong TypeScript Sử dụng hàm generics Sử dụng hàm generics trong TypeScript Sử dụng Array trong TypeScript Sử dụng Tuple trong TypeScript Sử dụng kiểu Array, Tuple, Enum trong TypeScript Interface trong Typescript Hybrid Types với Interface trong TypeScript Khác biệt khi sử dụng 'type' và 'interface' trong TypeScript Cách dùng Enum trong TypeScript Types và interface trong TypeScript Class trong TypeScript Sử dụng Abstract Classes trong TypeScript Sử dụng Interface trong Typescript (phần 2) Sử dụng Casting trong TypeScript Tìm hiểu về Generics trong TypeScript Tìm hiểu về utility types trong Typescript Utility types phổ biến trong Typescript Sử dụng default parameters trong TypeScript Modules trong TypeScript Rest Parameters trong TypeScript Sử dụng Function Overloadings trong TypeScript Sử dụng Type Assertions trong TypeScript Sử dụng Static Methods và Properties trong TypeScript. Sử dụng Access Modifiers trong TypeScript 10 mẹo và thủ thuật hay nhất trong TypeScript 5 Cách giúp bạn loại bỏ "any" trong TypeScript Mapped Types trong TypeScript Dependency Injection trong Typescript 5 ký hiệu khó hiểu cần biết trong TypeScript Cách sử dụng @ts-expect-error trong Typescript Declaration Merging trong TypeScript Tìm hiểu Branded Type trong TypeScript Namespaces trong Typescript Phân biệt Modules và Namespaces trong TypeScript Triple-Slash Directives trong TypeScript là gì? Phần 1: Biến trong TypeScript Phần 2: Biến trong TypeScript Property trong TypeScript Phân tích JSON trong TypeScript Bài tập TypeScript: Các dạng bài tập cơ bản Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript Bài tập TypeScript: Kiểu Generic Types trong Typescript Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple. Bài tập TypeScript: Classes và Inheritance trong Typescript Bài 01: TypeScript là gì? TypeScript và Javascript Bài 02: Cài đặt TypeScript Bài 03: TypeScript Basic Types Bài 04: Khai báo biến trong TypeScript Bài 05: Lệnh If Else và Switch Case trong TypeScript Bài 06: Vòng lặp trong TypeScript
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Tạo quản lý xe với TypeScript

Tạo lớp cơ sở Vehicle và các lớp con kế thừa từ nó là một cách tuyệt vời để tổ chức và quản lý thông tin về các loại phương tiện khác nhau. Trong bài tập này, mình sẽ bắt đầu tìm hiểu với lớp cơ sở Vehicle, sau đó tạo các lớp con Car, Motorcycle, và Truck.

Định nghĩa lớp cơ sở Vehicle

class Vehicle {
  constructor(public brand: string, public model: string, public year: number) {}

  startEngine(): void {
    console.log("Đã khởi động động cơ.");
  }

  stopEngine(): void {
    console.log("Đã tắt động cơ.");
  }
}

class Car extends Vehicle {
  constructor(brand: string, model: string, year: number, public type: string) {
    super(brand, model, year);
    this.type = type;
  }

  drive(): void {
    console.log(`Đang lái xe ${this.year} ${this.brand} ${this.model} loại ${this.type}.`);
  }
}

class Motorcycle extends Vehicle {
  constructor(brand: string, model: string, year: number, public category: string) {
    super(brand, model, year);
    this.category = category;
  }

  wheelie(): void {
    console.log(`Thực hiện một động tác Wheelie với xe máy ${this.year} ${this.brand} ${this.model} thuộc loại ${this.category}.`);
  }
}

class Truck extends Vehicle {
  constructor(brand: string, model: string, year: number, public capacity: number) {
    super(brand, model, year);
    this.capacity = capacity;
  }

  loadCargo(): void {
    console.log(`Đang tải hàng vào xe tải ${this.year} ${this.brand} ${this.model} với dung tích ${this.capacity} kg.`);
  }
}

// Sử dụng các lớp đã định nghĩa
const car = new Car("Toyota", "Corolla", 2022, "Sedan");
car.startEngine();
car.drive();

const motorcycle = new Motorcycle("Harley-Davidson", "Street 750", 2021, "Cruiser");
motorcycle.startEngine();
motorcycle.wheelie();

const truck = new Truck("Ford", "F-150", 2019, 2000);
truck.startEngine();
truck.loadCargo();
  • class Vehicle { ... }: Định nghĩa lớp cơ sở Vehicle với các thuộc tính như brand, model, year và các phương thức như startEngine()stopEngine().
  • Các lớp con Car, Motorcycle, và Truck kế thừa từ Vehicle, mỗi lớp con có các thuộc tính và phương thức riêng biệt, phù hợp với loại phương tiện tương ứng.
  • Trong hàm constructor của mỗi lớp con, chúng ta gọi super() để gọi hàm constructor của lớp cha (Vehicle), truyền vào thông tin cần thiết cho các thuộc tính chung.
  • Mỗi lớp con cũng có các phương thức riêng biệt, như drive() cho Car, wheelie() cho Motorcycle, và loadCargo() cho Truck.

Kết quả

Khi chạy đoạn mã trên, mình sẽ nhận được kết quả sau:

Đã khởi động động cơ.
Đang lái xe 2022 Toyota Corolla loại Sedan.
Đã khởi động động cơ.
Thực hiện một động tác Wheelie với xe máy 2021 Harley-Davidson Street 750 thuộc loại Cruiser.
Đã khởi động động cơ.
Đang tải hàng vào xe tải 2019 Ford F-150 với dung tích 2000 kg.

Đây chỉ là ví dụ, kết quả sẽ phụ thuộc vào việc môi trường thực thi mã và cách định nghĩa các hàm trong TypeScript.

Việc sử dụng kế thừa giúp mình có thể xây dựng các lớp con với các thuộc tính và hành vi riêng biệt, đồng thời vẫn kế thừa các phương thức và thuộc tính từ lớp cơ sở Vehicle. Điều này giúp tạo ra một cấu trúc dễ quản lý và tái sử dụng linh hoạt.

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript

Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript

Bài tập TypeScript: Các dạng bài tập cơ bản

Bài tập TypeScript: Các dạng bài tập cơ bản

Phân tích JSON trong TypeScript

Phân tích JSON trong TypeScript

Property trong TypeScript

Property trong TypeScript

Phần 2: Biến trong TypeScript

Phần 2: Biến trong TypeScript

Phần 1: Biến trong TypeScript

Phần 1: Biến trong TypeScript

Triple-Slash Directives trong TypeScript là gì?

Triple-Slash Directives trong TypeScript là gì?

Phân biệt Modules và Namespaces trong TypeScript

Phân biệt Modules và Namespaces trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Namespaces trong Typescript

Namespaces trong Typescript

Declaration Merging trong TypeScript

Declaration Merging trong TypeScript

Cách sử dụng @ts-expect-error trong typescript

Cách sử dụng @ts-expect-error trong typescript

5 ký hiệu khó hiểu cần biết trong TypeScript

5 ký hiệu khó hiểu cần biết trong TypeScript

Dependency Injection trong Typescript

Dependency Injection trong Typescript

Mapped Types trong TypeScript

Mapped Types trong TypeScript

5 Cách giúp bạn loại bỏ

5 Cách giúp bạn loại bỏ "any" trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Top