UNPKG

olympus-r

Version:

一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:

54 lines (53 loc) 2.37 kB
import IConstructor from "../core/interfaces/IConstructor"; import "../libs/Reflect"; /** * 包装一个类型,监听类型的实例化操作 * * @export * @param {IConstructor} cls 要监听构造的类型构造器 * @returns {IConstructor} 新的构造函数 */ export declare function wrapConstruct(cls: IConstructor): IConstructor; /** * 如果传入的类有包装类,则返回包装类,否则返回其本身 * * @export * @param {IConstructor} cls 要获取包装类的类构造函数 * @returns {IConstructor} */ export declare function getConstructor(cls: IConstructor): IConstructor; /** * 监听类型的实例化 * * @export * @param {IConstructor} cls 要监听实例化的类 * @param {(instance?:any)=>void} handler 处理函数 */ export declare function listenConstruct(cls: IConstructor, handler: (instance?: any) => void): void; /** * 移除实例化监听 * * @export * @param {IConstructor} cls 要移除监听实例化的类 * @param {(instance?:any)=>void} handler 处理函数 */ export declare function unlistenConstruct(cls: IConstructor, handler: (instance?: any) => void): void; /** * 监听类型销毁(如果能够销毁的话,需要类型具有dispose方法),该监听不需要移除 * * @export * @param {IConstructor} cls 要监听销毁的类 * @param {(instance?:any)=>void} handler 处理函数 */ export declare function listenDispose(cls: IConstructor, handler: (instance?: any) => void): void; /** * 监听某个实例的某个方法调用,并插入逻辑 * * @export * @param {IConstructor|any} target 要监听的对象类型或实例 * @param {string} name 要监听调用的方法名 * @param {(instance:any, args?:any[])=>any[]|void} [before] 执行前调用的回调,如果有返回值则替换掉正式方法执行时的参数 * @param {(instance:any, args?:any[], result?:any)=>any} [after] 执行后调用的回调,可以接收正式方法的返回值,如果after有返回值则替换掉正式方法的返回值 * @param {boolean} [once=true] 是否是一次性监听,默认是true */ export declare function listenApply(target: IConstructor | any, name: string, before?: (instance: any, args?: any[]) => any[] | void, after?: (instance: any, args?: any[], result?: any) => any, once?: boolean): void;