
export class User {
public username:string = "";
private password:string = "";
private LOGIN_ATTEMPTS:number = 0;
constructor(usernames:string,passwords:string){
this.username = usernames;
this.password = passwords;
}
public login(password:string):boolean{
this.LOGIN_ATTEMPTS++
return this.validatePassword(password);
}
private validatePassword(password:string):boolean{
return this.password === password;
}
public getLoginAttempts():number{
return this.LOGIN_ATTEMPTS;
}
}
import { User } from './user'
const user = new User('john_doe', 'secret123')
console.log(user.username)
// john_doe
user.username = 'jane_doe'
console.log(user.username)
// jane_doe
console.log(user.getLoginAttempts())
// 0
console.log(user.login('wrong_password'))
// false
console.log(user.getLoginAttempts())
// 1
console.log(user.login('wrong_password'))
// false
console.log(user.getLoginAttempts())
// 2
console.log(user.login('wrong_password'))
// false
console.log(user.getLoginAttempts())
// 3
console.log(user.login('secret123'))
// true
console.log(user.getLoginAttempts())
// 4
# TypeScript Quiz — ข้อ 4 (1 คะแนน)
## 🎯 คำสั่ง
ให้นักเรียนสร้าง class User ในไฟล์ `user.ts` ตาม **UML Class Diagram** ที่กำหนดให้
โดยต้องทำให้ไฟล์ `index.ts` ที่กำหนดให้ สามารถทำงานได้ถูกต้อง และได้ผลลัพธ์ตามที่คาดหวัง
## 📊 UML Class Diagram

> ⚠️ **สำคัญ**: ต้องอ่านและทำความเข้าใจ UML Class Diagram ให้ครบถ้วน
## 📌 หมายเหตุสำคัญ
**ในไฟล์ `index.ts` มี comment (`//`) ที่แสดงตัวอย่างผลลัพธ์ที่คาดหวัง**
ให้นักเรียนอ่านผลลัพธ์จาก comment เหล่านั้น แล้วเขียน method logic ใน class ต่างๆ ให้สอดคล้องกับผลลัพธ์ที่แสดงไว้
**ตัวอย่าง:**
```typescript
console.log(user.login('secret123'))
// true
จาก comment ด้านบน แสดงว่าผลลัพธ์ที่คาดหวังคือ true เมื่อรหัสผ่านถูกต้อง ดังนั้น method login() ใน class User ต้อง return ค่าในรูปแบบนี้
index.ts📁 โครงสร้างไฟล์ที่ต้องมี
p04/
├── user.ts ← นักเรียนต้องสร้าง
└── index.ts ← ไฟล์ที่กำหนดให้