1
A
回答
3
你可以有一個通用的克隆功能,如果你的類有一個默認的構造函數:
function clone<T>(instance: T): T {
const copy = new (instance.constructor as { new(): T })();
Object.assign(copy, instance);
return copy;
}
例如:
class A {
private _num: number;
private _str: string;
get num() {
return this._num;
}
set num(value: number) {
this._num = value;
}
get str() {
return this._str;
}
set str(value: string) {
this._str = value;
}
}
let a = new A();
a.num = 3;
a.str = "string";
let b = clone(a);
console.log(b.num); // 3
console.log(b.str); // "string"
如果你的等級比較複雜(有其他類的實例成員和/或不具有默認的構造函數),然後在你的類添加一個clone
方法,知道如何構建和賦值。
+0
感謝您的回答至關重要。在這種情況下,我需要確保我從不使用構造函數,而是使用工廠和設置器?歡呼聲 –
+0
好吧,然後導出工廠函數和克隆函數,但不要導出類本身 –
相關問題
- 1. Android:克隆類實例
- 2. 「這」在打字稿類實例
- 3. JavaScript類實例是否克隆函數?
- 4. 克隆EC2 Ubuntu實例
- 5. 克隆獨立實例
- 6. 在打字稿中創建一個類的新實例
- 7. 在打字稿類中創建Google Map實例
- 8. 如何在CKeditor中克隆實例?
- 9. 從打字稿/ Angular2類字符串創建實例
- 10. 實施克隆()在基類
- 11. 如何在打字稿中的基類中創建相同類型的實例
- 12. 打字稿定義文件:導出實例化的類
- 13. 治療打字稿枚舉爲類及其實例的列表
- 14. 用例克隆()
- 15. 複製/克隆實例的屬性?
- 16. 啓動克隆的EC2實例
- 17. 打字稿類裝飾修飾對象實例
- 18. 檢查是否打字稿類已經被實例化
- 19. 如何克隆/複製我自己的類的實例?
- 20. 類如打字稿
- 21. jquery克隆多個實例爲什麼
- 22. 克隆亞馬遜Linux實例
- 23. EC2實例克隆和自動終止
- 24. AWS Autoscaling不克隆正確實例
- 25. 克隆亞馬遜機器實例
- 26. 谷歌計算引擎 - 克隆實例
- 27. CRM 2011 ONLINE - 克隆現有實例
- 28. 克隆對象的實例,其基本類型
- 29. 如何克隆QML類型「vector2d」的實例?
- 30. 克隆一個類的實例(顯示對象)
請定義克隆實例。即使在概念模糊的流行語言如Java中,似乎也沒有人會同意它的實際含義。 –
無論如何,嘗試'Object.create(instance.prototype)' –
@AluanHaddad thx爲您的快速回復,不幸的是這不適用於TS –