1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
=== tests/cases/compiler/inferentialTypingObjectLiteralMethod1.ts ===
interface Int<T, U> {
method(x: T): U;
>method : (x: T) => U
>x : T
}
declare function foo<T, U>(x: T, y: Int<T, U>, z: Int<U, T>): T;
>foo : <T, U>(x: T, y: Int<T, U>, z: Int<U, T>) => T
>x : T
>y : Int<T, U>
>z : Int<U, T>
foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } });
>foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } }) : string
>foo : <T, U>(x: T, y: Int<T, U>, z: Int<U, T>) => T
>"" : ""
>{ method(p1) { return p1.length } } : { method(p1: string): number; }
>method : (p1: string) => number
>p1 : string
>p1.length : number
>p1 : string
>length : number
>{ method(p2) { return undefined } } : { method(p2: number): any; }
>method : (p2: number) => any
>p2 : number
>undefined : undefined
|