TypeScript/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types

239 lines
5.6 KiB
Plaintext
Raw Normal View History

2014-09-23 20:22:38 +02:00
=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers2.ts ===
var x: { foo: string; }
>x : { foo: string; }
>foo : string
2014-09-23 20:22:38 +02:00
var y: { foo: string; bar: string; }
>y : { foo: string; bar: string; }
>foo : string
>bar : string
2014-09-23 20:22:38 +02:00
class Base {
>Base : Base
2014-09-23 20:22:38 +02:00
protected a: typeof x;
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected b(a: typeof x) { }
>b : (a: { foo: string; }) => void
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected get c() { return x; }
>c : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected set c(v: typeof x) { }
>c : { foo: string; }
>v : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected d: (a: typeof x) => void ;
>d : (a: { foo: string; }) => void
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected static r: typeof x;
>r : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected static s(a: typeof x) { }
>s : (a: { foo: string; }) => void
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected static get t() { return x; }
>t : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected static set t(v: typeof x) { }
>t : { foo: string; }
>v : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
protected static u: (a: typeof x) => void ;
>u : (a: { foo: string; }) => void
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
constructor(a: typeof x) { }
>a : { foo: string; }
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
}
// Increase visibility of all protected members to public
class Derived extends Base {
>Derived : Derived
>Base : Base
2014-09-23 20:22:38 +02:00
a: typeof y;
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
b(a: typeof y) { }
>b : (a: { foo: string; bar: string; }) => void
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
get c() { return y; }
>c : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
set c(v: typeof y) { }
>c : { foo: string; bar: string; }
>v : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
d: (a: typeof y) => void;
>d : (a: { foo: string; bar: string; }) => void
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
static r: typeof y;
>r : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
static s(a: typeof y) { }
>s : (a: { foo: string; bar: string; }) => void
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
static get t() { return y; }
>t : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
static set t(a: typeof y) { }
>t : { foo: string; bar: string; }
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
static u: (a: typeof y) => void;
>u : (a: { foo: string; bar: string; }) => void
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
constructor(a: typeof y) { super(a); }
>a : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
>super(a) : void
>super : typeof Base
>a : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
}
var d: Derived = new Derived(y);
>d : Derived
>Derived : Derived
2014-09-23 20:22:38 +02:00
>new Derived(y) : Derived
>Derived : typeof Derived
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r1 = d.a;
>r1 : { foo: string; bar: string; }
>d.a : { foo: string; bar: string; }
>d : Derived
>a : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r2 = d.b(y);
>r2 : void
2014-09-23 20:22:38 +02:00
>d.b(y) : void
>d.b : (a: { foo: string; bar: string; }) => void
>d : Derived
>b : (a: { foo: string; bar: string; }) => void
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r3 = d.c;
>r3 : { foo: string; bar: string; }
>d.c : { foo: string; bar: string; }
>d : Derived
>c : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r3a = d.d;
>r3a : (a: { foo: string; bar: string; }) => void
>d.d : (a: { foo: string; bar: string; }) => void
>d : Derived
>d : (a: { foo: string; bar: string; }) => void
2014-09-23 20:22:38 +02:00
d.c = y;
>d.c = y : { foo: string; bar: string; }
>d.c : { foo: string; bar: string; }
>d : Derived
>c : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r4 = Derived.r;
>r4 : { foo: string; bar: string; }
>Derived.r : { foo: string; bar: string; }
>Derived : typeof Derived
>r : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r5 = Derived.s(y);
>r5 : void
2014-09-23 20:22:38 +02:00
>Derived.s(y) : void
>Derived.s : (a: { foo: string; bar: string; }) => void
>Derived : typeof Derived
>s : (a: { foo: string; bar: string; }) => void
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r6 = Derived.t;
>r6 : { foo: string; bar: string; }
>Derived.t : { foo: string; bar: string; }
>Derived : typeof Derived
>t : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
var r6a = Derived.u;
>r6a : (a: { foo: string; bar: string; }) => void
>Derived.u : (a: { foo: string; bar: string; }) => void
>Derived : typeof Derived
>u : (a: { foo: string; bar: string; }) => void
2014-09-23 20:22:38 +02:00
Derived.t = y;
>Derived.t = y : { foo: string; bar: string; }
>Derived.t : { foo: string; bar: string; }
>Derived : typeof Derived
>t : { foo: string; bar: string; }
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
class Base2 {
>Base2 : Base2
2014-09-23 20:22:38 +02:00
[i: string]: Object;
>i : string
>Object : Object
2014-09-23 20:22:38 +02:00
[i: number]: typeof x;
>i : number
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
}
class Derived2 extends Base2 {
>Derived2 : Derived2
>Base2 : Base2
2014-09-23 20:22:38 +02:00
[i: string]: typeof x;
>i : string
>x : { foo: string; }
2014-09-23 20:22:38 +02:00
[i: number]: typeof y;
>i : number
>y : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
}
var d2: Derived2;
>d2 : Derived2
>Derived2 : Derived2
2014-09-23 20:22:38 +02:00
var r7 = d2[''];
>r7 : { foo: string; }
2014-09-23 20:22:38 +02:00
>d2[''] : { foo: string; }
>d2 : Derived2
2015-04-13 21:36:11 +02:00
>'' : string
2014-09-23 20:22:38 +02:00
var r8 = d2[1];
>r8 : { foo: string; bar: string; }
2014-09-23 20:22:38 +02:00
>d2[1] : { foo: string; bar: string; }
>d2 : Derived2
2015-04-13 21:36:11 +02:00
>1 : number
2014-09-23 20:22:38 +02:00