living-together/source/Model/Archive.ts

47 lines
752 B
TypeScript

import { Emitter, EventType, EventMixin } from "./Emitter";
interface IArchiveEvent {
save: Archive;
load: Archive;
}
class Archive<
M extends any = any,
E extends Record<EventType, any> = {}
> extends Emitter<E & IArchiveEvent> {
/**
* 是否为新文件
*/
public isNewFile: boolean = true;
/**
* 文件名
*/
public fileName?: string;
/**
* 是否保存
*/
public isSaved: boolean = false;
/**
* 文件数据
*/
public fileData?: M;
/**
* 保存文件
* 模型转换为文件
*/
public save() {};
/**
* 加载文件为模型
* return Model
*/
public load() {};
}
export { Archive };
export default Archive;