Determinación del tipo de objeto al crear un literal en TypeScript
¡Hola a todos! Empecé a estudiar TypeScript recientemente y me encontré con un problema que me parece extraño. Cuando creo un objeto usando un literal, quiero especificar explícitamente su tipo, pero no entiendo cómo hacerlo correctamente.
Aquí hay un ejemplo: tengo una interface `User`, y quiero crear un objeto `user` con este tipo. Probé varias formas, pero no estoy seguro de cuál es la correcta y cuál es la diferencia.
```typescript
interface User {
name: string;
age: number;
}
// Forma 1: type annotation después de la declaración
const user1: User = {
name: 'Alexey',
age: 30
};
// Forma 2: type assertion
const user2 = {
name: 'María',
age: 25
} as User;
// Forma 3: sin tipo
const user3 = {
name: 'Iván',
age: 35
};
```
Preguntas:
1. ¿Cuál es la diferencia entre estos enfoques?
2. ¿Cuál de ellos es preferible?
3. ¿Por qué TypeScript en algunos casos permite agregar propiedades adicionales, y en otros no?
Me confunde especialmente la situación cuando quiero pasar un objeto a una función, que
No answers yet.
Inicia sesión para dejar una respuesta