=== tests/cases/compiler/inferentialTypingWithFunctionTypeZip.ts === var pair: (x: T) => (y: S) => { x: T; y: S; } >pair : (x: T) => (y: S) => { x: T; y: S; } >T : T >S : S >x : T >T : T >y : S >S : S >x : T >T : T >y : S >S : S var zipWith: (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[]; >zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] >T : T >S : S >U : U >a : T[] >T : T >b : S[] >S : S >f : (x: T) => (y: S) => U >x : T >T : T >y : S >S : S >U : U >U : U var result = zipWith([1, 2], ['a', 'b'], pair); >result : { x: number; y: {}; }[] >zipWith([1, 2], ['a', 'b'], pair) : { x: number; y: {}; }[] >zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] >[1, 2] : number[] >['a', 'b'] : string[] >pair : (x: T) => (y: S) => { x: T; y: S; } var i = result[0].x; // number >i : number >result[0].x : number >result[0] : { x: number; y: {}; } >result : { x: number; y: {}; }[] >x : number