TypeScript/tests/baselines/reference/recursivelySpecializedConstructorDeclaration.js
2014-07-12 17:30:19 -07:00

65 lines
1.9 KiB
JavaScript

//// [recursivelySpecializedConstructorDeclaration.ts]
module MsPortal.Controls.Base.ItemList {
export interface Interface<TValue> {
// Removing this line fixes the constructor of ItemValue
options: ViewModel<TValue>;
}
export class ItemValue<T> {
constructor(value: T) {
}
}
export class ViewModel<TValue> extends ItemValue<TValue> {
}
}
// Generates:
/*
declare module MsPortal.Controls.Base.ItemList {
interface Interface<TValue> {
options: ViewModel<TValue>;
}
class ItemValue<T> {
constructor(value: T);
}
class ViewModel<TValue> extends ItemValue<TValue> {
}
}
*/
//// [recursivelySpecializedConstructorDeclaration.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 MsPortal;
(function (MsPortal) {
(function (Controls) {
(function (Base) {
(function (ItemList) {
var ItemValue = (function () {
function ItemValue(value) {
}
return ItemValue;
})();
ItemList.ItemValue = ItemValue;
var ViewModel = (function (_super) {
__extends(ViewModel, _super);
function ViewModel() {
_super.apply(this, arguments);
}
return ViewModel;
})(ItemValue);
ItemList.ViewModel = ViewModel;
})(Base.ItemList || (Base.ItemList = {}));
var ItemList = Base.ItemList;
})(Controls.Base || (Controls.Base = {}));
var Base = Controls.Base;
})(MsPortal.Controls || (MsPortal.Controls = {}));
var Controls = MsPortal.Controls;
})(MsPortal || (MsPortal = {}));