c643f39557
eg: // @Filename: w1.ts export = Widget1 class Widget1 { name = 'one'; } // @Filename: exporter.ts export import w = require('./w1'); // @Filename: consumer.ts import e = require('./exporter'); export function w(): e.w { // Should be OK return new e.w(); } In this looking for the name of return type of function w, not just look for the alias == SymbolOfReturnType but also look for alias.exportedSymbols === symbolOfReturnType and qualify it during the toString
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
//// [tests/cases/compiler/exportImport.ts] ////
|
|
|
|
//// [w1.ts]
|
|
|
|
export = Widget1
|
|
class Widget1 { name = 'one'; }
|
|
|
|
//// [exporter.ts]
|
|
export import w = require('./w1');
|
|
|
|
//// [consumer.ts]
|
|
import e = require('./exporter');
|
|
|
|
export function w(): e.w { // Should be OK
|
|
return new e.w();
|
|
}
|
|
|
|
//// [w1.js]
|
|
define(["require", "exports"], function (require, exports) {
|
|
var Widget1 = (function () {
|
|
function Widget1() {
|
|
this.name = 'one';
|
|
}
|
|
return Widget1;
|
|
})();
|
|
return Widget1;
|
|
});
|
|
//// [exporter.js]
|
|
define(["require", "exports", './w1'], function (require, exports, w) {
|
|
exports.w = w;
|
|
});
|
|
//// [consumer.js]
|
|
define(["require", "exports", './exporter'], function (require, exports, e) {
|
|
function w() {
|
|
return new e.w();
|
|
}
|
|
exports.w = w;
|
|
});
|
|
|
|
|
|
//// [w1.d.ts]
|
|
export = Widget1;
|
|
declare class Widget1 {
|
|
name: string;
|
|
}
|
|
//// [exporter.d.ts]
|
|
export import w = require('./w1');
|
|
//// [consumer.d.ts]
|
|
import e = require('./exporter');
|
|
export declare function w(): e.w;
|