Typescript: objet de clonage

Créé le 5 févr. 2015  ·  3Commentaires  ·  Source: microsoft/TypeScript

J'ai davantage documenté la question sur Stack Overflow (http://stackoverflow.com/questions/28150967/typescript-cloning-object)

Existe-t-il un moyen de cloner un objet en tapuscrit? Actuellement, j'utilise le hack suivant

var cloneObj = new this.constructor ();

mais dactylographié déclenche l'erreur suivante: erreur TS2351: impossible d'utiliser «new» avec une expression dont le type n'a pas de signature d'appel ou de construction.

Question

Commentaire le plus utile

En utilisant votre code de SO, l'un de ces casts fonctionne avec les derniers bits et devrait avoir sur chaque version depuis:

    var cloneObj = new (<any>this.constructor());
    var cloneObj = new (<any>this.constructor)();
    var cloneObj = new (<any>this).constructor();

Tous les 3 commentaires

Pouvez-vous clarifier exactement quel est le problème que vous rencontrez avec votre réponse actuelle?

Le problème est que le compilateur génère une erreur lorsque j'essaye d'appeler dynamiquement un constructeur.

var cloneObj = new this.constructor(); // error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.

La façon dont j'ai trouvé pour rendre le compilateur 1.3 heureux était

var cloneObj = new (<any> this.constructor());

Mais cette méthode ne fonctionne pas avec la version 1.4.1.

Existe-t-il un moyen d'appeler dynamiquement un constructeur?

En utilisant votre code de SO, l'un de ces casts fonctionne avec les derniers bits et devrait avoir sur chaque version depuis:

    var cloneObj = new (<any>this.constructor());
    var cloneObj = new (<any>this.constructor)();
    var cloneObj = new (<any>this).constructor();
Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

CyrusNajmabadi picture CyrusNajmabadi  ·  3Commentaires

blendsdk picture blendsdk  ·  3Commentaires

manekinekko picture manekinekko  ·  3Commentaires

Roam-Cooper picture Roam-Cooper  ·  3Commentaires

kyasbal-1994 picture kyasbal-1994  ·  3Commentaires