Support import completion for merged declaration exports (#24539) (#24572)

This commit is contained in:
Andy
2018-06-01 10:28:00 -07:00
committed by GitHub
parent 8dc7d5aa88
commit 3f77e1eae1
2 changed files with 32 additions and 1 deletions

View File

@@ -628,7 +628,7 @@ namespace ts.Completions {
}
const { moduleSymbol } = symbolOriginInfo;
const exportedSymbol = skipAlias(symbol.exportSymbol || symbol, checker);
const exportedSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker));
const { moduleSpecifier, codeAction } = codefix.getImportCompletionAction(
exportedSymbol,
moduleSymbol,

View File

@@ -0,0 +1,31 @@
/// <reference path="fourslash.ts" />
// @module: esnext
// @Filename: /a.ts
////declare module "m" {
//// export default class M {}
////}
// @Filename: /b.ts
////declare module "m" {
//// export default interface M {}
////}
// @Filename: /c.ts
/////**/
goTo.marker("");
verify.completionListContains({ name: "M", source: "m" }, "class M", "", "class", /*spanIndex*/ undefined, /*hasAction*/ true, {
includeCompletionsForModuleExports: true,
sourceDisplay: "m",
});
verify.applyCodeActionFromCompletion("", {
name: "M",
source: "m",
description: `Import 'M' from module "m"`,
newFileContent: `import M from "m";
`,
});