mirror of
https://gitee.com/dgflash/oops-plugin-framework.git
synced 2026-05-30 18:39:18 +08:00
优化强类型事件类型
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import type { ListenerFunc, ListenerFuncTyped } from './EventMessage';
|
||||
import type { TypedEventMap } from './MessageManager';
|
||||
import { EventData } from './EventData';
|
||||
import { EventDataPool } from './EventDataPool';
|
||||
import type { ListenerFunc, ListenerFuncTyped } from './EventMessage';
|
||||
import { message } from './MessageManager';
|
||||
|
||||
/** 批量注册、移除全局事件对象(用于组件级事件管理) */
|
||||
@@ -17,7 +16,7 @@ export class EventDispatcher {
|
||||
* @param listener 处理事件的侦听器函数
|
||||
* @param object 侦听函数绑定的作用域对象
|
||||
*/
|
||||
watch<K extends keyof TypedEventMap>(event: K, listener: ListenerFuncTyped<K, TypedEventMap[K]>, object: object): void {
|
||||
watch<K extends keyof OopsFramework.TypedEventMap>(event: K, listener: ListenerFuncTyped<K, OopsFramework.TypedEventMap[K]>, object: object): void {
|
||||
this.on(event as string, listener as ListenerFunc, object);
|
||||
}
|
||||
|
||||
@@ -27,7 +26,7 @@ export class EventDispatcher {
|
||||
* @param listener 事件触发回调方法
|
||||
* @param object 侦听函数绑定的作用域对象
|
||||
*/
|
||||
watchOnce<K extends keyof TypedEventMap>(event: K, listener: ListenerFuncTyped<K, TypedEventMap[K]>, object: object): void {
|
||||
watchOnce<K extends keyof OopsFramework.TypedEventMap>(event: K, listener: ListenerFuncTyped<K, OopsFramework.TypedEventMap[K]>, object: object): void {
|
||||
this.once(event as string, listener as ListenerFunc, object);
|
||||
}
|
||||
|
||||
@@ -37,7 +36,7 @@ export class EventDispatcher {
|
||||
* @param listener 处理事件的侦听器函数(可选,不传则移除该事件的所有监听器)
|
||||
* @param object 侦听函数绑定的作用域对象(可选)
|
||||
*/
|
||||
unwatch<K extends keyof TypedEventMap>(event: K, listener?: ListenerFuncTyped<K, TypedEventMap[K]>, object?: object): void {
|
||||
unwatch<K extends keyof OopsFramework.TypedEventMap>(event: K, listener?: ListenerFuncTyped<K, OopsFramework.TypedEventMap[K]>, object?: object): void {
|
||||
this.off(event as string, listener as ListenerFunc, object);
|
||||
}
|
||||
|
||||
@@ -46,7 +45,7 @@ export class EventDispatcher {
|
||||
* @param event 事件名(枚举)
|
||||
* @param data 事件数据(必须完全匹配类型定义)
|
||||
*/
|
||||
emit<K extends keyof TypedEventMap>(event: K, data: TypedEventMap[K]): void {
|
||||
emit<K extends keyof OopsFramework.TypedEventMap>(event: K, data: OopsFramework.TypedEventMap[K]): void {
|
||||
message.emit(event, data);
|
||||
}
|
||||
|
||||
@@ -55,7 +54,7 @@ export class EventDispatcher {
|
||||
* @param event 事件名(枚举)
|
||||
* @param data 事件数据(必须完全匹配类型定义)
|
||||
*/
|
||||
emitAsync<K extends keyof TypedEventMap>(event: K, data: TypedEventMap[K]): Promise<void> {
|
||||
emitAsync<K extends keyof OopsFramework.TypedEventMap>(event: K, data: OopsFramework.TypedEventMap[K]): Promise<void> {
|
||||
return message.emitAsync(event, data);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user