优化强类型事件类型

This commit is contained in:
dgflash
2026-04-05 11:15:01 +08:00
parent b32c550b15
commit 5a43c3d08e

View File

@@ -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);
}