TypeScript/tests/baselines/reference/importTypeAmbient.js
Wesley Wigham 414bc49cc4
Module or import types (#22592)
* Type side of import types

* Value side of import types

* Accept library changes

* Refined implementation, more tests

* Allow resolutions to be performed late if the resolution still results in a file already in the build

* Add another test case

* Add some jsdoc usages

* Allow nodebuilder to use import types where appropriate

* Parse & check generic instantiations

* use import types in nodebuilder for typeof module symbols

* Wire up go to definition for import types

* Accept updated type/symbol baselines now that symbols are wired in

* PR feedback

* Fix changes from merge

* Walk back late import handling

* Remove unused diagnostic

* Remove unrelated changes

* Use recursive function over loop

* Emit type arguments

* undo unrelated change

* Test for and support import type nodes in bundled declaration emit
2018-04-02 10:18:23 -07:00

94 lines
1.6 KiB
TypeScript

//// [importTypeAmbient.ts]
declare module "foo" {
interface Point {
x: number;
y: number;
}
export = Point;
}
const x: import("foo") = { x: 0, y: 0 };
declare module "foo2" {
namespace Bar {
interface I {
a: string;
b: number;
}
}
namespace Baz {
interface J {
a: number;
b: string;
}
}
class Bar {
item: Bar.I;
constructor(input: Baz.J);
}
}
let y: import("foo2").Bar.I = { a: "", b: 0 };
class Bar2 {
item: {a: string, b: number, c: object};
constructor(input?: any) {}
}
let shim: typeof import("foo2") = {
Bar: Bar2
};
//// [importTypeAmbient.js]
var x = { x: 0, y: 0 };
var y = { a: "", b: 0 };
var Bar2 = /** @class */ (function () {
function Bar2(input) {
}
return Bar2;
}());
var shim = {
Bar: Bar2
};
//// [importTypeAmbient.d.ts]
declare module "foo" {
interface Point {
x: number;
y: number;
}
export = Point;
}
declare const x: import("foo");
declare module "foo2" {
namespace Bar {
interface I {
a: string;
b: number;
}
}
namespace Baz {
interface J {
a: number;
b: string;
}
}
class Bar {
item: Bar.I;
constructor(input: Baz.J);
}
}
declare let y: import("foo2").Bar.I;
declare class Bar2 {
item: {
a: string;
b: number;
c: object;
};
constructor(input?: any);
}
declare let shim: typeof import("foo2");