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

rigdern picture rigdern  ·  3Comentários

fwanicka picture fwanicka  ·  3Comentários

wmaurer picture wmaurer  ·  3Comentários

blendsdk picture blendsdk  ·  3Comentários

kyasbal-1994 picture kyasbal-1994  ·  3Comentários