diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fd786799b8b4c..8862960558ea4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2362,7 +2362,7 @@ namespace ts { } function getCommonJsExportEquals(exported: Symbol | undefined, moduleSymbol: Symbol): Symbol | undefined { - if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports!.size === 1) { + if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports!.size === 1 || exported.flags & SymbolFlags.Alias) { return exported; } const merged = cloneSymbol(exported); diff --git a/tests/baselines/reference/errorForConflictingExportEqualsValue.types b/tests/baselines/reference/errorForConflictingExportEqualsValue.types index b99151691203f..5d2b63f2e9ae0 100644 --- a/tests/baselines/reference/errorForConflictingExportEqualsValue.types +++ b/tests/baselines/reference/errorForConflictingExportEqualsValue.types @@ -6,6 +6,6 @@ export = x; >x : any import("./a"); ->import("./a") : Promise +>import("./a") : Promise >"./a" : "./a" diff --git a/tests/baselines/reference/moduleExportAliasImported.symbols b/tests/baselines/reference/moduleExportAliasImported.symbols new file mode 100644 index 0000000000000..9649cc0a3b64c --- /dev/null +++ b/tests/baselines/reference/moduleExportAliasImported.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/salsa/bug28014.js === +exports.version = 1 +>exports.version : Symbol(version) +>exports : Symbol(version, Decl(bug28014.js, 0, 0)) +>version : Symbol(version, Decl(bug28014.js, 0, 0)) + +function alias() { } +>alias : Symbol(alias, Decl(bug28014.js, 0, 19)) + +module.exports = alias +>module.exports : Symbol("tests/cases/conformance/salsa/bug28014", Decl(bug28014.js, 0, 0)) +>module : Symbol(export=, Decl(bug28014.js, 1, 20)) +>exports : Symbol(export=, Decl(bug28014.js, 1, 20)) +>alias : Symbol(alias, Decl(bug28014.js, 0, 19)) + +=== tests/cases/conformance/salsa/importer.js === +import('./bug28014') +>'./bug28014' : Symbol("tests/cases/conformance/salsa/bug28014", Decl(bug28014.js, 0, 0)) + diff --git a/tests/baselines/reference/moduleExportAliasImported.types b/tests/baselines/reference/moduleExportAliasImported.types new file mode 100644 index 0000000000000..9691acfab2254 --- /dev/null +++ b/tests/baselines/reference/moduleExportAliasImported.types @@ -0,0 +1,23 @@ +=== tests/cases/conformance/salsa/bug28014.js === +exports.version = 1 +>exports.version = 1 : 1 +>exports.version : number +>exports : typeof alias +>version : number +>1 : 1 + +function alias() { } +>alias : typeof alias + +module.exports = alias +>module.exports = alias : typeof alias +>module.exports : typeof alias +>module : { "tests/cases/conformance/salsa/bug28014": typeof alias; } +>exports : typeof alias +>alias : typeof alias + +=== tests/cases/conformance/salsa/importer.js === +import('./bug28014') +>import('./bug28014') : Promise<() => void> +>'./bug28014' : "./bug28014" + diff --git a/tests/cases/conformance/salsa/moduleExportAliasImported.ts b/tests/cases/conformance/salsa/moduleExportAliasImported.ts new file mode 100644 index 0000000000000..95c029813828d --- /dev/null +++ b/tests/cases/conformance/salsa/moduleExportAliasImported.ts @@ -0,0 +1,12 @@ +// @allowJs: true +// @noEmit: true +// @checkJs: true +// @target: esnext +// @module: esnext +// @Filename: bug28014.js +exports.version = 1 +function alias() { } +module.exports = alias + +// @Filename: importer.js +import('./bug28014')