import { _decorator, Component, Node } from 'cc'; import { saveProp, saveRoot, SaveUtil } from '../myUtil/saveCompoent/export'; const { ccclass, property } = _decorator; type Constructor = new (...args: any[]) => T const saveCompoent = { player: "player", Update: "Update", Item: "Item", stage: "stage", } as const; class MySave extends SaveUtil { getCompent(param: new (...args: any[]) => T): T { return this.getCompentByClass(param) } getCompentByName(name: keyof SaveCompoent) { return super.getCompentByName(name) } getCompentKey(): string[] { return Object.keys(saveCompoent).map(it => saveCompoent[it]) } } type SaveCompoent = typeof saveCompoent function compoentInter(componentName?: keyof SaveCompoent, customize: boolean = false) { return saveRoot(saveCompoent[componentName], customize) } export { MySave, saveProp, compoentInter as saveRoot, }