Error de TypeScript: el parámetro de índice no puede ser un tipo unión (union)
¡Hola a todos! Soy nuevo en TypeScript y me encontré con un error que no entiendo. Estoy intentando crear un objeto donde las claves solo pueden ser de dos tipos de string: `'user'` o `'admin'`. Escribí este código:
```typescript
type Role = 'user' | 'admin';
interface UserData {
name: string;
age: number;
}
// Intento crear un objeto donde la clave es el rol y el valor son los datos del usuario
const users: { [key: Role]: UserData } = {};
```
Pero TypeScript muestra un error: *"An index signature parameter type cannot be a union type. Consider using a mapped object type instead"*. Entiendo que las firmas de índice normalmente funcionan con `string`, `number` o `symbol`, pero ¿por qué no se puede usar una unión de strings literales? ¡Después de todo, también son strings!
Necesito que el objeto `users` contenga garantizadamente solo las claves `'user'` y `'admin'`, y que al intentar acceder a `users['guest']` TypeScript muestre un error en tiempo de compilación. ¿Cómo puedo hacerlo correctamente? ¿Quizás hay otra sintaxis para estos casos?
No answers yet.
Inicia sesión para dejar una respuesta