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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
=== tests/cases/compiler/genericsWithoutTypeParameters1.ts ===
class C<T> {
>C : C<T>
foo(): T { return null }
>foo : () => T
>null : null
}
interface I<T> {
bar(): T;
>bar : () => T
}
var c1: C;
>c1 : any
var i1: I;
>i1 : any
var c2: C<I>;
>c2 : C<any>
var i2: I<C>;
>i2 : I<any>
function foo(x: C, y: I) { }
>foo : (x: any, y: any) => void
>x : any
>y : any
function foo2(x: C<I>, y: I<C>) { }
>foo2 : (x: C<I>, y: I<C>) => void
>x : C<any>
>y : I<any>
var x: { a: C } = { a: new C<number>() };
>x : { a: any; }
>a : any
>{ a: new C<number>() } : { a: C<number>; }
>a : C<number>
>new C<number>() : C<number>
>C : typeof C
var x2: { a: I } = { a: { bar() { return 1 } } };
>x2 : { a: any; }
>a : any
>{ a: { bar() { return 1 } } } : { a: { bar(): number; }; }
>a : { bar(): number; }
>{ bar() { return 1 } } : { bar(): number; }
>bar : () => number
>1 : 1
class D<T> {
>D : D<T>
x: C;
>x : any
y: D;
>y : any
}
interface J<T> {
x: I;
>x : any
y: J;
>y : any
}
class A<T> { }
>A : A<T>
function f<T>(x: T): A {
>f : <T>(x: T) => any
>x : T
return null;
>null : null
}
|