TypeScript/tests/baselines/reference/exportImport.js
Sheetal Nandi c643f39557 Check for the accessible symbol from exported import
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
2014-08-08 12:57:59 -07:00

51 lines
1.1 KiB
TypeScript

//// [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;