TypeScript/tests/baselines/reference/genericTypeWithCallableMembers2.types

23 lines
1.1 KiB
Plaintext
Raw Normal View History

2014-08-15 23:33:16 +02:00
=== tests/cases/compiler/genericTypeWithCallableMembers2.ts ===
function foo1<T extends { (): string; }>(f: T) {
2015-04-13 23:01:57 +02:00
>foo1 : <T extends () => string>(f: T) => string, Symbol(foo1, Decl(genericTypeWithCallableMembers2.ts, 0, 0))
>T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14))
>f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41))
>T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14))
2014-08-15 23:33:16 +02:00
return f(); // should return 'string', once returned 'any'
>f() : string
2015-04-13 23:01:57 +02:00
>f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41))
2014-08-15 23:33:16 +02:00
}
function foo2<T extends { new (): string; }>(f: T) {
2015-04-13 23:01:57 +02:00
>foo2 : <T extends new () => string>(f: T) => string, Symbol(foo2, Decl(genericTypeWithCallableMembers2.ts, 2, 1))
>T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14))
>f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45))
>T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14))
2014-08-15 23:33:16 +02:00
return new f(); // should be legal, once was an error
>new f() : string
2015-04-13 23:01:57 +02:00
>f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45))
2014-08-15 23:33:16 +02:00
}