Typescript: objeto de clonagem

Criado em 5 fev. 2015  ·  3Comentários  ·  Fonte: microsoft/TypeScript

Eu documentei a questão mais no Stack Overflow (http://stackoverflow.com/questions/28150967/typescript-cloning-object)

Existe uma maneira de clonar um objeto no texto datilografado? Atualmente estou usando o seguinte hack

var cloneObj = new this.constructor ();

mas o texto digitado gera o seguinte erro: erro TS2351: não é possível usar 'novo' com uma expressão cujo tipo não tem uma chamada ou assinatura de construção.

Question

Comentários muito úteis

Usando seu código do SO, qualquer um desses moldes funciona com os bits mais recentes e deve estar em todas as versões desde:

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

Todos 3 comentários

Você pode esclarecer exatamente qual é o problema que está obtendo com sua resposta atual?

O problema é que o compilador gera um erro quando tento chamar um construtor dinamicamente.

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

A maneira que descobri de deixar o compilador 1.3 feliz foi

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

Mas esse método não funciona com 1.4.1.

Existe uma maneira de chamar um construtor dinamicamente?

Usando seu código do SO, qualquer um desses moldes funciona com os bits mais recentes e deve estar em todas as versões desde:

    var cloneObj = new (<any>this.constructor());
    var cloneObj = new (<any>this.constructor)();
    var cloneObj = new (<any>this).constructor();
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jbondc picture jbondc  ·  3Comentários

fwanicka picture fwanicka  ·  3Comentários

DanielRosenwasser picture DanielRosenwasser  ·  3Comentários

MartynasZilinskas picture MartynasZilinskas  ·  3Comentários

uber5001 picture uber5001  ·  3Comentários