@js-plus/count-down
Version:
66 lines (60 loc) • 2.03 kB
TypeScript
export declare type ClearInterval = (intervalId: any) => void;
/**
* 定义倒计时Countdown类
*
* 可以用于各种倒计时场景
*/
declare class Countdown {
timeLeft: number;
timers: any[];
startTime: Date;
endTime: Date;
endHooks: EndHook[];
intervalHooks: IntervalHook[];
clearInterval: ClearInterval;
setInterval: (callback: (...args: any[]) => void, ms?: number, ...args: any[]) => void;
/**
* 实例化一个倒时器
* @param timeLeft 剩余时间
* @param intervalHook
* @param endHook
*/
constructor(timeLeft?: number, intervalHook?: IntervalHook, endHook?: EndHook);
/**
* 设置剩余时间
*
* @param timeLeft 剩余时间
*/
setTimeLeft(timeLeft: number): void;
/**
* 如果传入的是数组,将每一秒要执行的回调函数push进该数组
*
* @param intervalHook 间隔回调钩子
*/
addIntervalHook(intervalHook: IntervalHook): void;
/**
* 生成倒计时结束数组,将倒计时结束的回调函数push进该数组
* */
addEndHook(endHook: EndHook): void;
/**
* 强制检测剩余时间,同时触发
*
* @param isEmitHook 是否触发间隔回调钩子
*/
checkTime(isEmitHook: boolean): void;
/**
* 判断是否结束
* @returns 是否结束
*/
isEnd(): boolean;
clearTime(): void;
private clearTimeRun;
private clearIntervals;
private run;
}
export { Countdown }
export default Countdown;
export declare type EndHook = ((countdown: Countdown) => void) | ((this: Countdown, countdown: Countdown) => void);
export declare type IntervalHook = ((timeLeft: number, isEnd: boolean, countdown: Countdown) => void) | ((this: Countdown, timeLeft: number, isEnd: boolean, countdown: Countdown) => void);
export declare type SetInterval = (callback: (...args: any[]) => void, ms?: number, ...args: any[]) => void;
export { }