Untitled
unknown
typescript
2 years ago
1.6 kB
5
Indexable
class Customer { id: string; name: string; address: string; phoneNumber: string; accounts: BankAccount[]; } class BankAccount { accountNumber: string; balance: number; customerId: string; creditCards: CreditCard[]; deposit(amount: number): void { this.balance += amount; } withdraw(amount: number): void { if (amount <= this.balance) { this.balance -= amount; } else { throw new Error("Insufficient funds"); } } transfer(amount: number, targetAccount: BankAccount): void { if (amount <= this.balance) { this.balance -= amount; targetAccount.deposit(amount); } else { throw new Error("Insufficient funds"); } } } class CreditCard { cardNumber: string; expirationDate: Date; balance: number; accountId: string; } class Bank { name: string; customers: Customer[]; createAccount(customer: Customer): BankAccount { const newAccount = new BankAccount(); //... Initialize newAccount with necessary details customer.accounts.push(newAccount); this.createCreditCard(newAccount); return newAccount; } createCreditCard(account: BankAccount): CreditCard { const newCard = new CreditCard(); //... Initialize newCard with necessary details account.creditCards.push(newCard); return newCard; } reorderCreditCard(account: BankAccount, oldCard: CreditCard): CreditCard { // Remove old card const cardIndex = account.creditCards.indexOf(oldCard); if (cardIndex > -1) { account.creditCards.splice(cardIndex, 1); } // Create new card return this.createCreditCard(account); } }
Editor is loading...