Typescript: objeto de clonación

Creado en 5 feb. 2015  ·  3Comentarios  ·  Fuente: microsoft/TypeScript

He documentado la pregunta más en Stack Overflow (http://stackoverflow.com/questions/28150967/typescript-cloning-object)

¿Hay alguna forma de clonar un objeto en mecanografiado? Actualmente estoy usando el siguiente truco

var cloneObj = new this.constructor ();

pero mecanografiado genera el siguiente error: error TS2351: No se puede usar 'nuevo' con una expresión cuyo tipo carece de una llamada o una firma de construcción.

Question

Comentario más útil

Usando su código de SO, cualquiera de estos casts funciona con los últimos bits y debería tener en cada versión desde:

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

Todos 3 comentarios

¿Puede aclarar exactamente cuál es el problema que tiene con su respuesta actual?

El problema es que el compilador genera un error cuando intento llamar a un constructor de forma dinámica.

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

La forma que encontré para hacer feliz al compilador 1.3 fue

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

Pero ese método no funciona con 1.4.1.

¿Hay alguna forma de llamar a un constructor de forma dinámica?

Usando su código de SO, cualquiera de estos casts funciona con los últimos bits y debería tener en cada versión desde:

    var cloneObj = new (<any>this.constructor());
    var cloneObj = new (<any>this.constructor)();
    var cloneObj = new (<any>this).constructor();
¿Fue útil esta página
0 / 5 - 0 calificaciones