exp。,在lib.dom.d.ts
中:
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
这是错误键入的,我们想用更好类型的声明代替它们。
但是仅添加新的声明只会“重载”这些函数,而不是隐藏它们。
declare function setTimeout<A extends any[]>(handler: (...args: A) => void, timeout?: number, ...arguments: A): number;
declare function setTimeout(handler: string, timeout?: number, ...arguments: any[]): number;
declare function setInterval<A extends any[]>(handler: (...args: A) => void, timeout?: number, ...arguments: A): number;
declare function setInterval(handler: string, timeout?: number, ...arguments: any[]): number;
仅添加这些声明是没有用的。
有没有办法隐藏/禁止原始声明?