diff --git a/tests/baselines/reference/classDoesNotDependOnBaseTypes.js b/tests/baselines/reference/classDoesNotDependOnBaseTypes.js new file mode 100644 index 00000000000..a62d5b1532b --- /dev/null +++ b/tests/baselines/reference/classDoesNotDependOnBaseTypes.js @@ -0,0 +1,38 @@ +//// [classDoesNotDependOnBaseTypes.ts] +var x: StringTree; +if (typeof x !== "string") { + x[0] = ""; + x[0] = new StringTreeCollection; +} + +type StringTree = string | StringTreeCollection; +class StringTreeCollectionBase { + [n: number]: StringTree; +} + +class StringTreeCollection extends StringTreeCollectionBase { } + +//// [classDoesNotDependOnBaseTypes.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 x; +if (typeof x !== "string") { + x[0] = ""; + x[0] = new StringTreeCollection; +} +var StringTreeCollectionBase = (function () { + function StringTreeCollectionBase() { + } + return StringTreeCollectionBase; +})(); +var StringTreeCollection = (function (_super) { + __extends(StringTreeCollection, _super); + function StringTreeCollection() { + _super.apply(this, arguments); + } + return StringTreeCollection; +})(StringTreeCollectionBase); diff --git a/tests/baselines/reference/classDoesNotDependOnBaseTypes.types b/tests/baselines/reference/classDoesNotDependOnBaseTypes.types new file mode 100644 index 00000000000..c342f0ea002 --- /dev/null +++ b/tests/baselines/reference/classDoesNotDependOnBaseTypes.types @@ -0,0 +1,43 @@ +=== tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts === +var x: StringTree; +>x : string | StringTreeCollection +>StringTree : string | StringTreeCollection + +if (typeof x !== "string") { +>typeof x !== "string" : boolean +>typeof x : string +>x : string | StringTreeCollection +>"string" : string + + x[0] = ""; +>x[0] = "" : string +>x[0] : string | StringTreeCollection +>x : StringTreeCollection +>0 : number +>"" : string + + x[0] = new StringTreeCollection; +>x[0] = new StringTreeCollection : StringTreeCollection +>x[0] : string | StringTreeCollection +>x : StringTreeCollection +>0 : number +>new StringTreeCollection : StringTreeCollection +>StringTreeCollection : typeof StringTreeCollection +} + +type StringTree = string | StringTreeCollection; +>StringTree : string | StringTreeCollection +>StringTreeCollection : StringTreeCollection + +class StringTreeCollectionBase { +>StringTreeCollectionBase : StringTreeCollectionBase + + [n: number]: StringTree; +>n : number +>StringTree : string | StringTreeCollection +} + +class StringTreeCollection extends StringTreeCollectionBase { } +>StringTreeCollection : StringTreeCollection +>StringTreeCollectionBase : StringTreeCollectionBase + diff --git a/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.js b/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.js new file mode 100644 index 00000000000..4d8a23ddd25 --- /dev/null +++ b/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.js @@ -0,0 +1,16 @@ +//// [interfaceDoesNotDependOnBaseTypes.ts] +var x: StringTree; +if (typeof x !== "string") { + x.push(""); + x.push([""]); +} + +type StringTree = string | StringTreeArray; +interface StringTreeArray extends Array { } + +//// [interfaceDoesNotDependOnBaseTypes.js] +var x; +if (typeof x !== "string") { + x.push(""); + x.push([""]); +} diff --git a/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.types b/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.types new file mode 100644 index 00000000000..7b5d60a5261 --- /dev/null +++ b/tests/baselines/reference/interfaceDoesNotDependOnBaseTypes.types @@ -0,0 +1,36 @@ +=== tests/cases/conformance/types/typeAliases/interfaceDoesNotDependOnBaseTypes.ts === +var x: StringTree; +>x : string | StringTreeArray +>StringTree : string | StringTreeArray + +if (typeof x !== "string") { +>typeof x !== "string" : boolean +>typeof x : string +>x : string | StringTreeArray +>"string" : string + + x.push(""); +>x.push("") : number +>x.push : (...items: (string | StringTreeArray)[]) => number +>x : StringTreeArray +>push : (...items: (string | StringTreeArray)[]) => number +>"" : string + + x.push([""]); +>x.push([""]) : number +>x.push : (...items: (string | StringTreeArray)[]) => number +>x : StringTreeArray +>push : (...items: (string | StringTreeArray)[]) => number +>[""] : string[] +>"" : string +} + +type StringTree = string | StringTreeArray; +>StringTree : string | StringTreeArray +>StringTreeArray : StringTreeArray + +interface StringTreeArray extends Array { } +>StringTreeArray : StringTreeArray +>Array : T[] +>StringTree : string | StringTreeArray + diff --git a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts new file mode 100644 index 00000000000..98f94718f30 --- /dev/null +++ b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts @@ -0,0 +1,12 @@ +var x: StringTree; +if (typeof x !== "string") { + x[0] = ""; + x[0] = new StringTreeCollection; +} + +type StringTree = string | StringTreeCollection; +class StringTreeCollectionBase { + [n: number]: StringTree; +} + +class StringTreeCollection extends StringTreeCollectionBase { } \ No newline at end of file diff --git a/tests/cases/conformance/types/typeAliases/interfaceDoesNotDependOnBaseTypes.ts b/tests/cases/conformance/types/typeAliases/interfaceDoesNotDependOnBaseTypes.ts new file mode 100644 index 00000000000..4e380e96b37 --- /dev/null +++ b/tests/cases/conformance/types/typeAliases/interfaceDoesNotDependOnBaseTypes.ts @@ -0,0 +1,8 @@ +var x: StringTree; +if (typeof x !== "string") { + x.push(""); + x.push([""]); +} + +type StringTree = string | StringTreeArray; +interface StringTreeArray extends Array { } \ No newline at end of file