كيفية تحويل كائن JSON إلى مثيل من كلاس TypeScript؟
مرحباً بالجميع! أنا مبتدئ في TypeScript وواجهت مشكلة عند العمل مع بيانات JSON. لدي كلاس User يحتوي على حقول وطرق:
```typescript
class User {
name: string;
age: number;
email: string;
constructor(name: string, age: number, email: string) {
this.name = name;
this.age = age;
this.email = email;
}
isAdult(): boolean {
return this.age >= 18;
}
}
```
عندما أحصل على بيانات من الخادم بصيغة JSON، مثلاً عبر fetch:
```typescript
const response = await fetch('/api/user');
const jsonData = await response.json();
// jsonData = { name: 'إيفان', age: 25, email: 'ivan@example.com' }
```
أحاول تحويله إلى نوع User:
```typescript
const user: User = jsonData as User;
```
لكن بعد ذلك، عندما أستدعي الطريقة user.isAdult()، لا يظهر TypeScript خطأ، لكن في وقت التشغيل أحصل على "user.isAdult is not a function". أفهم أن as User هو مجرد تحويل نوع للمترجم، لكن الكائن في الواقع ليس