Typescript: クローンオブジェクト

作成日 2015年02月05日  ·  3コメント  ·  ソース: microsoft/TypeScript

Stack Overflow(http://stackoverflow.com/questions/28150967/typescript-cloning-object)で質問をさらに文書化しました

タイプスクリプトでオブジェクトのクローンを作成する方法はありますか? 現在、私は次のハックを使用しています

var cloneObj = new this.constructor();

しかし、typescriptは次のエラーを発生させます:エラーTS2351:タイプに呼び出しまたは構成シグネチャがない式で「new」を使用することはできません。

Question

最も参考になるコメント

SOのコードを使用すると、これらのキャストはいずれも最新のビットで機能し、次の以降のすべてのバージョンで使用できるはずです。

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

全てのコメント3件

現在の回答で発生している問題を正確に明確にできますか?

問題は、コンストラクターを動的に呼び出そうとすると、コンパイラーでエラーが発生することです。

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

コンパイラ1.3を幸せにするために私が見つけた方法は

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

ただし、その方法は1.4.1では機能しません。

コンストラクターを動的に呼び出す方法はありますか?

SOのコードを使用すると、これらのキャストはいずれも最新のビットで機能し、次の以降のすべてのバージョンで使用できるはずです。

    var cloneObj = new (<any>this.constructor());
    var cloneObj = new (<any>this.constructor)();
    var cloneObj = new (<any>this).constructor();
このページは役に立ちましたか?
0 / 5 - 0 評価