Usando TypeScript, ¿es posible escribir el siguiente mapa con mayor precisión?
export const animalsMap = new Map<AnimalIdsEnum, object>([ [ AnimalIdsEnum.sylvester, { id: AnimalIdsEnum.sylvester, ...new CatAnimalData("Sylvester", "Tweety"); } ], [ AnimalIdsEnum.tweety, { id: AnimalIdsEnum.tweety, ...new BirdAnimalData("Tweety", "Sylvester"); }, ], ]);Dónde:
export class AbstractAnimalData { name:string, } export class CatAnimalData extends AbstractAnimalData { favouriteFood:string, // NB: Leaving out the constructor for brevity } export class BirdAnimalData extends AbstractAnimalData { archEnemy:string, // NB: Leaving out the constructor for brevity }Básicamente, esta estructura de mapa es muy conveniente para usar en la práctica, pero no estoy seguro de si es posible escribirlo con mayor precisión, dado que:
Nota: En la práctica, los objetos creados por new CatAnimalData("Sylvester", "Tweety"); y new BirdAnimalData("Tweety", "Sylvester"); se importan desde archivos separados. Para mayor comodidad y claridad, no quiero asignar las claves de identificación en esos archivos, sino solo en el Mapa.