Saya telah mendokumentasikan pertanyaan lebih lanjut tentang Stack Overflow (http://stackoverflow.com/questions/28150967/typescript-cloning-object)
Apakah ada cara untuk mengkloning objek di skrip ketikan? Saat ini saya menggunakan peretasan berikut
var cloneObj = new this.constructor ();
tetapi skrip ketikan memunculkan kesalahan berikut: kesalahan TS2351: Tidak dapat menggunakan 'baru' dengan ekspresi yang tipenya tidak memiliki panggilan atau tanda tangan konstruksi.
Dapatkah Anda menjelaskan dengan tepat apa masalah yang Anda hadapi dengan jawaban Anda saat ini?
Masalahnya adalah bahwa kompilator memunculkan kesalahan ketika saya mencoba memanggil konstruktor secara dinamis.
var cloneObj = new this.constructor(); // error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Cara yang saya temukan untuk membuat compiler 1.3 senang adalah
var cloneObj = new (<any> this.constructor());
Tetapi metode itu tidak bekerja dengan 1.4.1.
Apakah ada cara untuk memanggil konstruktor secara dinamis?
Menggunakan kode Anda dari SO, salah satu cast ini berfungsi dengan bit terbaru dan harus ada di setiap versi karena:
var cloneObj = new (<any>this.constructor());
var cloneObj = new (<any>this.constructor)();
var cloneObj = new (<any>this).constructor();
Komentar yang paling membantu
Menggunakan kode Anda dari SO, salah satu cast ini berfungsi dengan bit terbaru dan harus ada di setiap versi karena: