fix(types): 补全和修正 TypeScript 类型声明

修复:
- ToastInstance: 补充 iconHTML / group 属性
- MeToast: 补充 getAll() 方法
- AnimationUtils: 移除 12 个不存在的 phantom 方法 (apply/enter/leave/cancel/pauseAll等)
- PluginManager: 移除 10 个不存在的 phantom 方法 (use/trigger/middleware等)
- PluginUtils: 补充缺失的 unregister/has/getNames/enable/disable/isEnabled 方法
This commit is contained in:
2026-07-24 14:54:08 +08:00
parent f7d74d152d
commit 5c5627179a
+37 -83
View File
@@ -368,6 +368,10 @@ export interface ToastInstance {
paused: boolean;
/** 是否关闭中 */
closing: boolean;
/** 自定义图标HTML */
iconHTML?: string;
/** Toast分组名称 */
group?: string | null;
/** 创建Toast */
create(): ToastInstance;
@@ -444,7 +448,7 @@ export interface Plugin {
[key: string]: any;
}
// 插件管理器接口
// 插件管理器接口(对齐实际 PluginManager 实现)
export interface PluginManager {
/** 注册插件 */
register(name: string, plugin: Plugin): PluginManager;
@@ -464,35 +468,11 @@ export interface PluginManager {
getAll(): Plugin[];
/** 获取插件名称 */
getNames(): string[];
/** 注册中间件 */
use(middleware: Function): PluginManager;
/** 移除中间件 */
removeMiddleware(middleware: Function): PluginManager;
/** 触发钩子 */
trigger(hookName: string, context: any, ...args: any[]): Promise<any>;
/** 触发同步钩子 */
triggerSync(hookName: string, context: any, ...args: any): any;
/** 执行中间件 */
executeMiddleware(context: any, next: Function): Promise<any>;
/** 获取所有钩子 */
getHooks(): Map<string, Array<{ pluginName: string; handler: Function }>>;
/** 检查钩子是否存在 */
hasHook(hookName: string): boolean;
/** 获取所有中间件 */
getMiddleware(): Function[];
/** 清除所有钩子 */
clearHooks(): void;
/** 清除所有中间件 */
clearMiddleware(): void;
/** 重置 */
reset(): void;
/** 初始化 */
init(): void;
/** 销毁 */
/** 销毁所有插件 */
destroy(): void;
}
// 动画管理器接口
// 动画管理器接口(对齐实际 animationUtils 实现)
export interface AnimationManager {
/** 注册动画 */
register(name: string, config: AnimationConfig): void;
@@ -500,35 +480,15 @@ export interface AnimationManager {
unregister(name: string): void;
/** 获取动画配置 */
get(name: string): AnimationConfig | null;
/** 应用动画 */
apply(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 应用进入动画 */
enter(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 应用离开动画 */
leave(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 取消所有动画 */
cancelAll(): void;
/** 取消元素动画 */
cancel(element: HTMLElement): void;
/** 暂停所有动画 */
pauseAll(): void;
/** 恢复所有动画 */
resumeAll(): void;
/** 暂停元素动画 */
pause(element: HTMLElement): void;
/** 恢复元素动画 */
resume(element: HTMLElement): void;
/** 获取活动动画数量 */
/** 获取所有动画名称 */
getAnimationNames(): string[];
/** 获取已注册动画数量 */
getActiveCount(): number;
/** 获取所有活动动画 */
getActiveAnimations(): Map<number, { element: HTMLElement; animation: Animation; config: AnimationConfig }>;
/** 检查元素是否有活动动画 */
hasActiveAnimation(element: HTMLElement): boolean;
/** 获取动画配置 */
getConfig(): { animations: string[]; activeCount: number };
/** 重置 */
/** 兼容APICSS动画由浏览器管理) */
cancelAll(): void;
/** 重置动画管理器 */
reset(): void;
/** 销毁 */
/** 销毁动画管理器 */
destroy(): void;
}
@@ -688,6 +648,8 @@ export interface MeToast {
// 插件系统
/** 安装插件 */
use(plugin: string | Plugin, options?: Record<string, any>): MeToast;
/** 获取 Toast 原生 Map */
getAll(): Map<string, ToastInstance>;
// 模块引用
/** 动画模块 */
@@ -794,31 +756,9 @@ export interface StackOptions extends ToastOptions {
stagger?: number;
}
// 动画工具接口
// 动画工具接口(对齐实际 animationUtils 实现)
export interface AnimationUtils {
/** 应用动画 */
apply(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 应用进入动画 */
enter(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 应用离开动画 */
leave(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise<void>;
/** 取消所有动画 */
cancelAll(): void;
/** 取消元素动画 */
cancel(element: HTMLElement): void;
/** 暂停所有动画 */
pauseAll(): void;
/** 恢复所有动画 */
resumeAll(): void;
/** 暂停元素动画 */
pause(element: HTMLElement): void;
/** 恢复元素动画 */
resume(element: HTMLElement): void;
/** 获取活动动画数量 */
getActiveCount(): number;
/** 检查元素是否有活动动画 */
hasActiveAnimation(element: HTMLElement): boolean;
/** 注册动画 */
/** 注册自定义动画 */
register(name: string, config: AnimationConfig): void;
/** 注销动画 */
unregister(name: string): void;
@@ -826,11 +766,13 @@ export interface AnimationUtils {
get(name: string): AnimationConfig | null;
/** 获取所有动画名称 */
getAnimationNames(): string[];
/** 获取动画配置 */
getConfig(): { animations: string[]; activeCount: number };
/** 重置 */
/** 获取已注册动画数量 */
getActiveCount(): number;
/** 兼容APICSS动画由浏览器管理) */
cancelAll(): void;
/** 重置动画管理器 */
reset(): void;
/** 销毁 */
/** 销毁动画管理器 */
destroy(): void;
}
@@ -1001,11 +943,23 @@ export interface PluginUtils {
/** 创建插件管理器 */
createManager(): PluginManager;
/** 注册插件 */
register(name: string, plugin: Plugin): void;
register(name: string, plugin: Plugin): PluginManager;
/** 注销插件 */
unregister(name: string): PluginManager;
/** 获取插件 */
get(name: string): Plugin | null;
/** 检查插件是否存在 */
has(name: string): boolean;
/** 获取所有插件 */
getAll(): Plugin[];
/** 获取插件名称 */
getNames(): string[];
/** 启用插件 */
enable(name: string): PluginManager;
/** 禁用插件 */
disable(name: string): PluginManager;
/** 检查插件是否启用 */
isEnabled(name: string): boolean;
/** 获取预设插件 */
getPreset(name: string): Plugin | null;
/** 获取所有预设插件 */