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

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;

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([])
} }
} }