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 –