=== tests/cases/compiler/inferTypeArgumentsInSignatureWithRestParameters.ts === function f(array: T[], ...args) { } >f : (array: T[], ...args: any[]) => void >T : T >array : T[] >T : T >args : any[] function g(array: number[], ...args) { } >g : (array: number[], ...args: any[]) => void >array : number[] >args : any[] function h(nonarray: T, ...args) { } >h : (nonarray: T, ...args: any[]) => void >T : T >nonarray : T >T : T >args : any[] function i(array: T[], opt?: any[]) { } >i : (array: T[], opt?: any[]) => void >T : T >array : T[] >T : T >opt : any[] var a = [1, 2, 3, 4, 5]; >a : number[] >[1, 2, 3, 4, 5] : number[] >1 : number >2 : number >3 : number >4 : number >5 : number f(a); // OK >f(a) : void >f : (array: T[], ...args: any[]) => void >a : number[] g(a); // OK >g(a) : void >g : (array: number[], ...args: any[]) => void >a : number[] h(a); // OK >h(a) : void >h : (nonarray: T, ...args: any[]) => void >a : number[] i(a); // OK >i(a) : void >i : (array: T[], opt?: any[]) => void >a : number[]