declare function fn(x: any): void; declare function takeTwo(x: any, y: any): void; declare function withRest(a: any, ...args: Array): void; var n: number[]; fn(1) // no error fn(1, 2, 3, 4) takeTwo(1, 2, 3, 4) withRest('a', ...n); // no error withRest(); withRest(...n);