2014-08-15 23:33:16 +02:00
|
|
|
=== tests/cases/compiler/superWithGenericSpecialization.ts ===
|
|
|
|
class C<T> {
|
|
|
|
>C : C<T>
|
|
|
|
>T : T
|
|
|
|
|
|
|
|
x: T;
|
|
|
|
>x : T
|
|
|
|
>T : T
|
|
|
|
}
|
|
|
|
|
|
|
|
class D<T> extends C<string> {
|
|
|
|
>D : D<T>
|
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>C : C<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
|
|
|
|
y: T;
|
|
|
|
>y : T
|
|
|
|
>T : T
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
super(); // uses the type parameter type of the base class, ie string
|
|
|
|
>super() : void
|
2014-08-28 21:31:37 +02:00
|
|
|
>super : typeof C
|
2014-08-15 23:33:16 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var d: D<number>;
|
|
|
|
>d : D<number>
|
2014-08-19 04:56:03 +02:00
|
|
|
>D : D<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
|
|
|
|
var r: string = d.x;
|
|
|
|
>r : string
|
|
|
|
>d.x : string
|
|
|
|
>d : D<number>
|
|
|
|
>x : string
|
|
|
|
|
|
|
|
var r2: number = d.y;
|
|
|
|
>r2 : number
|
|
|
|
>d.y : number
|
|
|
|
>d : D<number>
|
|
|
|
>y : number
|
|
|
|
|