TypeScript/tests/baselines/reference/ModuleWithExportedAndNonExportedImportAlias.js

69 lines
1.6 KiB
TypeScript

//// [ModuleWithExportedAndNonExportedImportAlias.ts]
module A {
export interface Point {
x: number;
y: number;
}
interface Point3d extends Point {
z: number;
}
}
module B {
export class Line {
constructor(public start: A.Point, public end: A.Point) { }
}
}
module Geometry {
export import Points = A;
import Lines = B;
export var Origin: Points.Point = { x: 0, y: 0 };
// this is valid since B.Line _is_ visible outside Geometry
export var Unit: Lines.Line = new Lines.Line(Origin, { x: 1, y: 0 });
}
// expected to work since all are exported
var p: { x: number; y: number };
var p: Geometry.Points.Point;
var p = Geometry.Origin;
var line: { start: { x: number; y: number }; end: { x: number; y: number; } };
var line = Geometry.Unit;
// not expected to work since non are exported
var line = Geometry.Lines.Line;
//// [ModuleWithExportedAndNonExportedImportAlias.js]
var B;
(function (B) {
var Line = (function () {
function Line(start, end) {
this.start = start;
this.end = end;
}
return Line;
})();
B.Line = Line;
})(B || (B = {}));
var Geometry;
(function (Geometry) {
var Lines = B;
Geometry.Origin = { x: 0, y: 0 };
// this is valid since B.Line _is_ visible outside Geometry
Geometry.Unit = new Lines.Line(Geometry.Origin, { x: 1, y: 0 });
})(Geometry || (Geometry = {}));
// expected to work since all are exported
var p;
var p;
var p = Geometry.Origin;
var line;
var line = Geometry.Unit;
// not expected to work since non are exported
var line = Geometry.Lines.Line;