¿Cómo usar correctamente Map de ES6 en TypeScript? Tipificación y ejemplos
¡Hola a todos! Empecé a estudiar TypeScript después de JavaScript y me encontré con un problema al usar Map. En JS escribía tranquilamente:
```typescript
let map = new Map();
map.set('name', 'John');
map.set(42, 'answer');
```
Pero en TypeScript esto causa errores de compilación si no se especifican los tipos. Probé diferentes opciones, pero siempre me confundo:
1. Simplemente `new Map()` — funciona, pero TypeScript se queja de `any`
2. Intenté especificar `Map` — parece funcionar, pero se pierde el sentido de la tipificación
3. Quiero almacenar objetos con diferentes claves y valores, pero no sé cómo describir los tipos correctamente
Tarea concreta: necesito crear un Map donde las claves sean strings y los valores sean objetos con campos id (number) y name (string). También quiero entender si se pueden usar objetos o funciones como claves, como en ES6.
Por favor, indíquenme cómo tipificar correctamente un Map en TypeScript. ¿Cuáles son las best practices para diferentes casos? ¿Y cómo evitar errores cuando las claves o valores pueden ser de diferentes tipos?