/** * 消息内容: 倒计时时间 或 结束内容 */ declare type Message = string | number; interface Content { /** * 消息内容 */ message: Message; /** * 是否完成 */ done: boolean; } /** * 启动配置 */ interface StartConfig { /** * 开始值,默认60 */ start: number; /** * 结束值,默认(0) */ end: number; /** * 间隔时间(s),默认1 */ timeout: number; } /** * 回调函数类型 */ declare type Callback = (content: Content) => void; /** * 倒计时类 */ declare class CountDown { private message; private callbacks; /** * 定义结束消息是什么 */ constructor(message: string); /** * 开始倒计时,异步执行,await 有效 * * @param config - 启动配置 */ start(config?: StartConfig): Promise; /** * 发布每次变化 * * @param message - 倒计时时间 或 构造函数传入的内容 */ private publish; /** * 添加订阅 * * @param callback - 订阅函数 * @returns - 返回添加的函数 */ subscribe(callback: Callback): Callback; /** * 取消订阅 * * @param callback - subscribe 的函数 * @returns - 是否移除, false 说明回调函数不存在 */ unsubscribe(callback: Callback): boolean; /** * 清空所有订阅函数 */ clear(): void; } export default CountDown;