Error de TypeScript: "An index signature parameter type cannot be a union type" — ¿cómo solucionarlo?
¡Saludos, colegas! Soy nuevo en TypeScript y me encontré con un error que no puedo entender. Tengo un objeto que almacena configuraciones para diferentes tipos de usuarios: 'admin' y 'user'. Quiero crear un tipo que garantice que las claves del objeto sean solo estas cadenas y los valores sean booleanos. Aquí está mi código:
```typescript
type UserRole = 'admin' | 'user';
interface Settings {
[key: UserRole]: boolean; // ¡Error!
}
```
TypeScript muestra: "An index signature parameter type cannot be a union type. Consider using a mapped object type instead". Pensé que los tipos union se podían usar como claves, pero el compilador no está de acuerdo. Necesito que el objeto solo pueda contener las propiedades 'admin' y 'user', y que al intentar acceder a otra clave (por ejemplo, 'guest') TypeScript muestre un error. ¿Cómo hacerlo correctamente? Vi que en la documentación se mencionan los mapped types, pero no entiendo bien cómo aplicarlos en mi caso. Agradecería una explicación clara con ejemplos.