Cómo establecer un tipo para todos los elementos de un objeto (miembros indexados) en TypeScript
¡Hola! Recientemente empecé a aprender TypeScript y me encontré con un problema. Tengo un objeto que almacena datos sobre usuarios. Las claves son IDs de tipo string, y los valores son objetos con información. Necesito que TypeScript verifique que todos los valores en este objeto correspondan a un tipo específico, independientemente de las claves que use.
Aquí hay un ejemplo de lo que intento hacer:
```typescript
interface User {
name: string;
age: number;
}
// Así es como quiero declarar un objeto donde todos los valores son User
let users: { [key: string]: User } = {};
users["user1"] = { name: "Alice", age: 30 }; // Ok
users["user2"] = { name: "Bob", age: "25" }; // Error, age es string, no number
```
Este código funciona, pero no estoy seguro de que sea el enfoque correcto. He oído hablar de Record, pero no entiendo cuál es la diferencia. También me interesa saber cómo hacer que las claves no sean solo strings, sino valores específicos (por ejemplo, solo "admin", "user", "guest").
Dime cómo tipificar correctamente.