declare type Extra = any[]; declare type EachArgCallback = (this: TH, value: V, index: number, ...extra: E) => any; declare function eachArg(this: TH, arr: IArguments | V[] | string | ArrayLike, start: number, callback: EachArgCallback, ...extra: E): void; declare function eachArg(this: TH, arr: IArguments | V[] | string | ArrayLike, start: number, callback: EachArgCallback, ...extra: Extra): void; export = eachArg;