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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
=== tests/cases/compiler/genericInterfaceTypeCall.ts ===
interface Foo<T> {
reject(arg: T): void;
>reject : (arg: T) => void
>arg : T
}
var foo: Foo<string>
>foo : Foo<string>
interface bar<T> {
fail(func: (arg: T) => void ): void;
>fail : (func: (arg: T) => void) => void
>func : (arg: T) => void
>arg : T
fail2(func2: { (arg: T): void; }): void;
>fail2 : (func2: (arg: T) => void) => void
>func2 : (arg: T) => void
>arg : T
}
var test: bar<string>;
>test : bar<string>
test.fail(arg => foo.reject(arg));
>test.fail(arg => foo.reject(arg)) : void
>test.fail : (func: (arg: string) => void) => void
>test : bar<string>
>fail : (func: (arg: string) => void) => void
>arg => foo.reject(arg) : (arg: string) => void
>arg : string
>foo.reject(arg) : void
>foo.reject : (arg: string) => void
>foo : Foo<string>
>reject : (arg: string) => void
>arg : string
test.fail2(arg => foo.reject(arg)); // Error: Supplied parameters do not match any signature of call target
>test.fail2(arg => foo.reject(arg)) : void
>test.fail2 : (func2: (arg: string) => void) => void
>test : bar<string>
>fail2 : (func2: (arg: string) => void) => void
>arg => foo.reject(arg) : (arg: string) => void
>arg : string
>foo.reject(arg) : void
>foo.reject : (arg: string) => void
>foo : Foo<string>
>reject : (arg: string) => void
>arg : string
|