Avatar ·

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?