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

Xây dựng hệ thống ngân hàng trong Typescript

Để xây dựng hệ thống ngân hàng, mình sẽ bắt đầu với lớp cơ sở Account có các phương thức và thuộc tính cơ bản như balance, deposit(), và withdraw(). Sau đó, mình sẽ tạo các lớp con SavingsAccount CheckingAccount kế thừa từ Account và mở rộng các phương thức cho phù hợp.

Tạo lớp Account trong Typescript

class Account {
  protected balance: number;

  constructor(initialBalance: number) {
    this.balance = initialBalance;
  }

  deposit(amount: number): void {
    this.balance += amount;
    console.log(`Deposited ${amount} into the account.`);
  }

  withdraw(amount: number): void {
    if (amount <= this.balance) {
      this.balance -= amount;
      console.log(`Withdrawn ${amount} from the account.`);
    } else {
      console.log("Insufficient funds.");
    }
  }

  getBalance(): number {
    return this.balance;
  }
}

Lớp Account có thuộc tính balance để theo dõi số dư và các phương thức deposit(), withdraw() để nạp tiền và rút tiền từ tài khoản. Phương thức getBalance() sẽ trả về số dư hiện tại trong tài khoản.

Tạo lớp SavingsAccount kế thừa từ Account bằng Typescript

class SavingsAccount extends Account {
  private interestRate: number;

  constructor(initialBalance: number, interestRate: number) {
    super(initialBalance);
    this.interestRate = interestRate;
  }

  calculateInterest(): void {
    const interest = this.balance * (this.interestRate / 100);
    this.deposit(interest);
    console.log(`Added interest of ${interest} to the account.`);
  }
}

Lớp SavingsAccount mở rộng từ Account và thêm một thuộc tính interestRate. Phương thức calculateInterest() tính toán lãi suất dựa trên số dư và tiến hành nạp vào tài khoản.

Tạo lớp CheckingAccount kế thừa từ Account

class CheckingAccount extends Account {
  constructor(initialBalance: number) {
    super(initialBalance);
  }

  withdraw(amount: number): void {
    const fee = 1; // Withdrawal fee
    const totalAmount = amount + fee;
    super.withdraw(totalAmount);
  }
}

Lớp CheckingAccount kế thừa từ Account và ghi đè phương thức withdraw() để thêm phí rút tiền vào mỗi lần rút.

Sử dụng các lớp đã tạo

const savingsAcc = new SavingsAccount(1000, 5);
savingsAcc.calculateInterest(); // Tính lãi

const checkingAcc = new CheckingAccount(500);
checkingAcc.withdraw(50); // Rút tiền

console.log("Savings Account Balance:", savingsAcc.getBalance());
console.log("Checking Account Balance:", checkingAcc.getBalance());

Kết quả

Deposited 50 into the account.
Withdrawn 51 from the account.
Savings Account Balance: 1050
Checking Account Balance: 449

Kết quả này có thể thay đổi tùy thuộc vào các giá trị bạn cung cấp khi tạo các tài khoản và thực hiện giao dịch. Trong ví dụ trên, số dư trong tài khoản tiết kiệm tăng thêm số tiền lãi và số dư trong tài khoản thanh toán giảm sau khi rút tiền (bao gồm cả phí rút tiền).

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