Bonjour à toutes et tous,
J’ai découvert TypeScript avec Angular 2 et je dois dire que je suis assez conquis par les possibilités offerte par cette surcouche.
Je suis néanmoins bloqué, je suis en train de développé un ORM et je bloque lorsque je dois récupérer l’objet opposé de la relation.
Concrètement, à un moment il faut que je crée une nouvelle instance de l’objet que je vais ensuite hydrater… sauf que je n’y arrive pas.
Si je tente de faire
1 2 3 | function hydrate(modelName: string) { let model = new modelName; } |
J’ai droit à une erreur me disant que modelName n’est pas un constructeur.
J’ai essayé dans la déclaration de mon modèle de mettre la classe directement plutôt qu’une chaine:
1 2 3 4 | class Foo { @ManyToOne(Bar) model: Bar; } |
Mais j’ai une erreur à l’execution me signalant que Bar
n’existe pas. (au moment de l’analyse de la déclaration de la classe)
Ma dernière idée en date est de récupérer le type déclarer dans la classe, si je peux savoir que model
est Bar
et ce même si la valeur actuelle ne l’est pas (typiquement null ou undefined) alors sa m’arrangerai.
Sauf que je n’ai rien trouver me permettant d’arriver à ce résultat.
J’ai également recherché sur Google comment instancier une nouvelle classe dynamique (ma première technique), je suis tombé sur des résultat à base de this[className] ou window, rien ne fonctionne
Merci d’avance pour votre aide.
Cordialement, La source.