import { Logger, ISettingsParam } from 'tslog'; /** * 数据上下文, 同时具有 logger 的功能 * @example * const ctx = new Context<{a:string,b:number}>() * * function someRuntimeSaveValue(){ * ctx.set('a','useful') * } * function someRuntime(){ * const {a}=ctx.pick('a') * * } * ctx.free() * */ export declare class Context extends Logger { /** 初始化数据 */ private _originData; constructor( /** 初始化数据 */ _originData?: Partial, opts?: { log?: { settings?: ISettingsParam; logObj?: LogObj; }; }); recordLog(log: (...args: any[]) => void): void; set(key: K, value: T[K]): void; free(...keys: (keyof T)[]): void; check(key: K): boolean; destroy(): void; /** * 使用Context时,必须要使用 pick 具名导出你需要的数据。 * 如果在运行时,没有发现 key 则会 waning * */ pick(...keys: K[]): Pick; }