Como converter um objeto JSON em uma instância da classe TypeScript?
Olá a todos! Sou novo em TypeScript e encontrei um problema ao trabalhar com dados JSON. Tenho uma classe User com campos e métodos:
```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;
}
}
```
Quando recebo dados do servidor no formato JSON, por exemplo via fetch:
```typescript
const response = await fetch('/api/user');
const jsonData = await response.json();
// jsonData = { name: 'Ivan', age: 25, email: 'ivan@example.com' }
```
Tento fazer o cast para o tipo User:
```typescript
const user: User = jsonData as User;
```
Mas depois, quando chamo o método user.isAdult(), o TypeScript não gera erro, mas em runtime recebo "user.isAdult is not a function". Entendo que as User é apenas um type assertion para o compilador, mas na verdade o objeto não é