¿Qué es Record en TypeScript y cómo usarlo correctamente?
¡Hola a todos! Recientemente comencé a estudiar TypeScript y me topé con el tipo incorporado `Record`. Leí la documentación, pero no terminé de entender cuál es su esencia y cuándo aplicarlo.
Entiendo que existen interfaces y tipos, pero `Record` se ve diferente. Por ejemplo, vi este código:
```typescript
const users: Record = {};
```
Pero no entiendo en qué se diferencia de un objeto simple `{ [key: string]: User }`. ¿O de `Map`? ¿Cuándo elegir qué?
Mi problema concreto: tengo una lista de estados de pedido (pending, approved, rejected), y para cada estado necesito almacenar algún texto (por ejemplo, un color para mostrar). Escribí esto:
```typescript
const statusColors = {
pending: 'yellow',
approved: 'green',
rejected: 'red'
};
```
Pero TypeScript se queja cuando intento acceder a `statusColors['unknown']`. ¿Cómo tipificar correctamente este mapa con `Record`? Y en general, ¿para qué escenarios es más adecuado `Record`? Agradeceré cualquier