TypeScript/tests/baselines/reference/typeLiteralCallback.types
2015-04-15 16:44:20 -07:00

61 lines
1.5 KiB
Plaintext

=== tests/cases/compiler/typeLiteralCallback.ts ===
interface Foo<T> {
>Foo : Foo<T>
>T : T
reject(arg: T): void ;
>reject : (arg: T) => void
>arg : T
>T : T
}
var foo: Foo<string>
>foo : Foo<string>
>Foo : Foo<T>
interface bar<T> {
>bar : bar<T>
>T : T
fail(func: (arg: T) => void ): void ;
>fail : (func: (arg: T) => void) => void
>func : (arg: T) => void
>arg : T
>T : T
fail2(func: { (arg: T): void ; }): void ;
>fail2 : (func: (arg: T) => void) => void
>func : (arg: T) => void
>arg : T
>T : T
}
var test: bar<string>;
>test : bar<string>
>bar : bar<T>
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)); // Should be OK. Was: Error: Supplied parameters do not match any signature of call target
>test.fail2(arg => foo.reject(arg)) : void
>test.fail2 : (func: (arg: string) => void) => void
>test : bar<string>
>fail2 : (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