2014-07-13 01:04:16 +02:00
|
|
|
//// [commentsInheritance.ts]
|
|
|
|
|
|
|
|
/** i1 is interface with properties*/
|
|
|
|
interface i1 {
|
|
|
|
/** i1_p1*/
|
|
|
|
i1_p1: number;
|
|
|
|
/** i1_f1*/
|
|
|
|
i1_f1(): void;
|
|
|
|
/** i1_l1*/
|
|
|
|
i1_l1: () => void;
|
|
|
|
// il_nc_p1
|
|
|
|
i1_nc_p1: number;
|
|
|
|
i1_nc_f1(): void;
|
|
|
|
i1_nc_l1: () => void;
|
|
|
|
p1: number;
|
|
|
|
f1(): void;
|
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
|
|
|
}
|
|
|
|
class c1 implements i1 {
|
|
|
|
public i1_p1: number;
|
|
|
|
// i1_f1
|
|
|
|
public i1_f1() {
|
|
|
|
}
|
|
|
|
public i1_l1: () => void;
|
|
|
|
public i1_nc_p1: number;
|
|
|
|
public i1_nc_f1() {
|
|
|
|
}
|
|
|
|
public i1_nc_l1: () => void;
|
|
|
|
/** c1_p1*/
|
|
|
|
public p1: number;
|
|
|
|
/** c1_f1*/
|
|
|
|
public f1() {
|
|
|
|
}
|
|
|
|
/** c1_l1*/
|
|
|
|
public l1: () => void;
|
|
|
|
/** c1_nc_p1*/
|
|
|
|
public nc_p1: number;
|
|
|
|
/** c1_nc_f1*/
|
|
|
|
public nc_f1() {
|
|
|
|
}
|
|
|
|
/** c1_nc_l1*/
|
|
|
|
public nc_l1: () => void;
|
|
|
|
}
|
|
|
|
var i1_i: i1;
|
|
|
|
var c1_i = new c1();
|
|
|
|
// assign to interface
|
|
|
|
i1_i = c1_i;
|
|
|
|
class c2 {
|
|
|
|
/** c2 c2_p1*/
|
|
|
|
public c2_p1: number;
|
|
|
|
/** c2 c2_f1*/
|
|
|
|
public c2_f1() {
|
|
|
|
}
|
|
|
|
/** c2 c2_prop*/
|
|
|
|
public get c2_prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
public c2_nc_p1: number;
|
|
|
|
public c2_nc_f1() {
|
|
|
|
}
|
|
|
|
public get c2_nc_prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
/** c2 p1*/
|
|
|
|
public p1: number;
|
|
|
|
/** c2 f1*/
|
|
|
|
public f1() {
|
|
|
|
}
|
|
|
|
/** c2 prop*/
|
|
|
|
public get prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
public nc_p1: number;
|
|
|
|
public nc_f1() {
|
|
|
|
}
|
|
|
|
public get nc_prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
/** c2 constructor*/
|
|
|
|
constructor(a: number) {
|
|
|
|
this.c2_p1 = a;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class c3 extends c2 {
|
|
|
|
constructor() {
|
|
|
|
super(10);
|
|
|
|
}
|
|
|
|
/** c3 p1*/
|
|
|
|
public p1: number;
|
|
|
|
/** c3 f1*/
|
|
|
|
public f1() {
|
|
|
|
}
|
|
|
|
/** c3 prop*/
|
|
|
|
public get prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
public nc_p1: number;
|
|
|
|
public nc_f1() {
|
|
|
|
}
|
|
|
|
public get nc_prop() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var c2_i = new c2(10);
|
|
|
|
var c3_i = new c3();
|
|
|
|
// assign
|
|
|
|
c2_i = c3_i;
|
|
|
|
class c4 extends c2 {
|
|
|
|
}
|
|
|
|
var c4_i = new c4(10);
|
|
|
|
interface i2 {
|
|
|
|
/** i2_p1*/
|
|
|
|
i2_p1: number;
|
|
|
|
/** i2_f1*/
|
|
|
|
i2_f1(): void;
|
|
|
|
/** i2_l1*/
|
|
|
|
i2_l1: () => void;
|
|
|
|
// i2_nc_p1
|
|
|
|
i2_nc_p1: number;
|
|
|
|
i2_nc_f1(): void;
|
|
|
|
i2_nc_l1: () => void;
|
|
|
|
/** i2 p1*/
|
|
|
|
p1: number;
|
|
|
|
/** i2 f1*/
|
|
|
|
f1(): void;
|
|
|
|
/** i2 l1*/
|
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
|
|
|
}
|
|
|
|
interface i3 extends i2 {
|
|
|
|
/** i3 p1 */
|
|
|
|
p1: number;
|
|
|
|
/**
|
|
|
|
* i3 f1
|
|
|
|
*/
|
|
|
|
f1(): void;
|
|
|
|
/** i3 l1*/
|
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
|
|
|
}
|
|
|
|
var i2_i: i2;
|
|
|
|
var i3_i: i3;
|
|
|
|
// assign to interface
|
|
|
|
i2_i = i3_i;
|
|
|
|
|
|
|
|
|
|
|
|
//// [commentsInheritance.js]
|
|
|
|
var __extends = this.__extends || function (d, b) {
|
|
|
|
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
|
|
function __() { this.constructor = d; }
|
|
|
|
__.prototype = b.prototype;
|
|
|
|
d.prototype = new __();
|
|
|
|
};
|
|
|
|
var c1 = (function () {
|
|
|
|
function c1() {
|
|
|
|
}
|
2014-08-14 15:21:30 +02:00
|
|
|
// i1_f1
|
2014-07-13 01:04:16 +02:00
|
|
|
c1.prototype.i1_f1 = function () {
|
|
|
|
};
|
|
|
|
c1.prototype.i1_nc_f1 = function () {
|
|
|
|
};
|
2014-08-14 15:21:30 +02:00
|
|
|
/** c1_f1*/
|
2014-07-13 01:04:16 +02:00
|
|
|
c1.prototype.f1 = function () {
|
|
|
|
};
|
2014-08-14 15:21:30 +02:00
|
|
|
/** c1_nc_f1*/
|
2014-07-13 01:04:16 +02:00
|
|
|
c1.prototype.nc_f1 = function () {
|
|
|
|
};
|
|
|
|
return c1;
|
|
|
|
})();
|
|
|
|
var i1_i;
|
|
|
|
var c1_i = new c1();
|
2014-08-16 00:49:09 +02:00
|
|
|
// assign to interface
|
2014-07-13 01:04:16 +02:00
|
|
|
i1_i = c1_i;
|
|
|
|
var c2 = (function () {
|
2014-08-14 15:42:18 +02:00
|
|
|
/** c2 constructor*/
|
2014-07-13 01:04:16 +02:00
|
|
|
function c2(a) {
|
|
|
|
this.c2_p1 = a;
|
|
|
|
}
|
2014-08-14 15:21:30 +02:00
|
|
|
/** c2 c2_f1*/
|
2014-07-13 01:04:16 +02:00
|
|
|
c2.prototype.c2_f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c2.prototype, "c2_prop", {
|
2014-08-14 15:12:14 +02:00
|
|
|
/** c2 c2_prop*/
|
2014-07-13 01:04:16 +02:00
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
|
|
|
c2.prototype.c2_nc_f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c2.prototype, "c2_nc_prop", {
|
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
2014-08-14 15:21:30 +02:00
|
|
|
/** c2 f1*/
|
2014-07-13 01:04:16 +02:00
|
|
|
c2.prototype.f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c2.prototype, "prop", {
|
2014-08-14 15:12:14 +02:00
|
|
|
/** c2 prop*/
|
2014-07-13 01:04:16 +02:00
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
|
|
|
c2.prototype.nc_f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c2.prototype, "nc_prop", {
|
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
|
|
|
return c2;
|
|
|
|
})();
|
|
|
|
var c3 = (function (_super) {
|
|
|
|
__extends(c3, _super);
|
|
|
|
function c3() {
|
|
|
|
_super.call(this, 10);
|
|
|
|
}
|
2014-08-14 15:21:30 +02:00
|
|
|
/** c3 f1*/
|
2014-07-13 01:04:16 +02:00
|
|
|
c3.prototype.f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c3.prototype, "prop", {
|
2014-08-14 15:12:14 +02:00
|
|
|
/** c3 prop*/
|
2014-07-13 01:04:16 +02:00
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
|
|
|
c3.prototype.nc_f1 = function () {
|
|
|
|
};
|
|
|
|
Object.defineProperty(c3.prototype, "nc_prop", {
|
|
|
|
get: function () {
|
|
|
|
return 10;
|
|
|
|
},
|
|
|
|
enumerable: true,
|
|
|
|
configurable: true
|
|
|
|
});
|
|
|
|
return c3;
|
|
|
|
})(c2);
|
|
|
|
var c2_i = new c2(10);
|
|
|
|
var c3_i = new c3();
|
2014-08-16 00:49:09 +02:00
|
|
|
// assign
|
2014-07-13 01:04:16 +02:00
|
|
|
c2_i = c3_i;
|
|
|
|
var c4 = (function (_super) {
|
|
|
|
__extends(c4, _super);
|
|
|
|
function c4() {
|
|
|
|
_super.apply(this, arguments);
|
|
|
|
}
|
|
|
|
return c4;
|
|
|
|
})(c2);
|
|
|
|
var c4_i = new c4(10);
|
|
|
|
var i2_i;
|
|
|
|
var i3_i;
|
2014-08-16 00:49:09 +02:00
|
|
|
// assign to interface
|
2014-07-13 01:04:16 +02:00
|
|
|
i2_i = i3_i;
|
|
|
|
|
|
|
|
|
|
|
|
//// [commentsInheritance.d.ts]
|
2014-08-14 17:50:17 +02:00
|
|
|
/** i1 is interface with properties*/
|
2014-07-11 23:44:31 +02:00
|
|
|
interface i1 {
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i1_p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i1_p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** i1_f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i1_f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i1_l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i1_l1: () => void;
|
|
|
|
i1_nc_p1: number;
|
|
|
|
i1_nc_f1(): void;
|
|
|
|
i1_nc_l1: () => void;
|
|
|
|
p1: number;
|
|
|
|
f1(): void;
|
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
2014-07-17 22:01:23 +02:00
|
|
|
declare class c1 implements i1 {
|
2014-07-12 01:36:06 +02:00
|
|
|
i1_p1: number;
|
|
|
|
i1_f1(): void;
|
|
|
|
i1_l1: () => void;
|
|
|
|
i1_nc_p1: number;
|
|
|
|
i1_nc_f1(): void;
|
|
|
|
i1_nc_l1: () => void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c1_p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c1_f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c1_l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
l1: () => void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c1_nc_p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
nc_p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c1_nc_f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
nc_f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c1_nc_l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
nc_l1: () => void;
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
2014-07-12 01:36:06 +02:00
|
|
|
declare var i1_i: i1;
|
|
|
|
declare var c1_i: c1;
|
2014-07-11 23:44:31 +02:00
|
|
|
declare class c2 {
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c2 c2_p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
c2_p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c2 c2_f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
c2_f1(): void;
|
2014-08-14 18:01:38 +02:00
|
|
|
/** c2 c2_prop*/
|
2014-07-12 01:36:06 +02:00
|
|
|
c2_prop: number;
|
|
|
|
c2_nc_p1: number;
|
|
|
|
c2_nc_f1(): void;
|
|
|
|
c2_nc_prop: number;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c2 p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c2 f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
f1(): void;
|
2014-08-14 18:01:38 +02:00
|
|
|
/** c2 prop*/
|
2014-07-12 01:36:06 +02:00
|
|
|
prop: number;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_prop: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c2 constructor*/
|
2014-07-12 01:36:06 +02:00
|
|
|
constructor(a: number);
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
|
|
|
declare class c3 extends c2 {
|
2014-07-12 01:36:06 +02:00
|
|
|
constructor();
|
2014-08-14 17:53:02 +02:00
|
|
|
/** c3 p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** c3 f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
f1(): void;
|
2014-08-14 18:01:38 +02:00
|
|
|
/** c3 prop*/
|
2014-07-12 01:36:06 +02:00
|
|
|
prop: number;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_prop: number;
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
2014-07-12 01:36:06 +02:00
|
|
|
declare var c2_i: c2;
|
|
|
|
declare var c3_i: c3;
|
2014-07-11 23:44:31 +02:00
|
|
|
declare class c4 extends c2 {
|
|
|
|
}
|
2014-07-12 01:36:06 +02:00
|
|
|
declare var c4_i: c4;
|
2014-07-11 23:44:31 +02:00
|
|
|
interface i2 {
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i2_p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i2_p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** i2_f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i2_f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i2_l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
i2_l1: () => void;
|
|
|
|
i2_nc_p1: number;
|
|
|
|
i2_nc_f1(): void;
|
|
|
|
i2_nc_l1: () => void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i2 p1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
p1: number;
|
2014-08-14 18:08:53 +02:00
|
|
|
/** i2 f1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i2 l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
|
|
|
interface i3 extends i2 {
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i3 p1 */
|
2014-07-12 01:36:06 +02:00
|
|
|
p1: number;
|
2014-08-14 23:43:28 +02:00
|
|
|
/**
|
|
|
|
* i3 f1
|
2014-08-14 18:08:53 +02:00
|
|
|
*/
|
2014-07-12 01:36:06 +02:00
|
|
|
f1(): void;
|
2014-08-14 17:53:02 +02:00
|
|
|
/** i3 l1*/
|
2014-07-12 01:36:06 +02:00
|
|
|
l1: () => void;
|
|
|
|
nc_p1: number;
|
|
|
|
nc_f1(): void;
|
|
|
|
nc_l1: () => void;
|
2014-07-11 23:44:31 +02:00
|
|
|
}
|
2014-07-12 01:36:06 +02:00
|
|
|
declare var i2_i: i2;
|
|
|
|
declare var i3_i: i3;
|