Optmize archive function type

This commit is contained in:
ben.qin
2022-04-21 17:25:25 +08:00
parent 1d36aac37d
commit de0dd57a04
2 changed files with 8 additions and 8 deletions
+3 -3
View File
@@ -17,7 +17,7 @@ interface IArchiveCtrlObject {
/** /**
* 可控对象 * 可控对象
*/ */
class CtrlObject extends LabelObject { class CtrlObject<A extends IAnyObject = IAnyObject> extends LabelObject {
/** /**
* 显示名称 * 显示名称
@@ -109,7 +109,7 @@ class CtrlObject extends LabelObject {
return this.deleteFlag; return this.deleteFlag;
} }
public toArchive<T>(): IArchiveCtrlObject & T { public toArchive(): IArchiveCtrlObject & A {
return { return {
displayName: this.displayName, displayName: this.displayName,
color: this.color.concat([]), color: this.color.concat([]),
@@ -121,7 +121,7 @@ class CtrlObject extends LabelObject {
} as any; } as any;
} }
public fromArchive<T>(archive: IArchiveCtrlObject & T, paster?: IArchiveParseFn): void { public fromArchive(archive: IArchiveCtrlObject & A, paster?: IArchiveParseFn): void {
this.displayName = archive.displayName; this.displayName = archive.displayName;
this.color = archive.color.concat([]); this.color = archive.color.concat([]);
this.display = !!archive.display; this.display = !!archive.display;
+5 -5
View File
@@ -10,7 +10,7 @@ interface IArchiveRange {
/** /**
* 范围 * 范围
*/ */
class Range extends CtrlObject { class Range extends CtrlObject<IArchiveRange> {
/** /**
* 坐标 * 坐标
@@ -31,7 +31,7 @@ class Range extends CtrlObject {
} }
} }
public override toArchive<T>(): IArchiveCtrlObject & T { public override toArchive(): IArchiveCtrlObject & IArchiveRange {
return { return {
...super.toArchive(), ...super.toArchive(),
position: this.position.concat([]), position: this.position.concat([]),
@@ -39,10 +39,10 @@ class Range extends CtrlObject {
}; };
} }
public override fromArchive<T>(archive: IArchiveCtrlObject & T, paster?: IArchiveParseFn): void { public override fromArchive(archive: IArchiveCtrlObject & IArchiveRange, paster?: IArchiveParseFn): void {
super.fromArchive(archive, paster); super.fromArchive(archive, paster);
this.position = (archive as any).position.concat([]), this.position = archive.position.concat([]),
this.radius = (archive as any).radius.concat([]) this.radius = archive.radius.concat([])
} }
} }