diff --git a/src/services/completions.ts b/src/services/completions.ts index bf7ff041f2d2d..c7ea7b5a40e71 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1289,7 +1289,7 @@ namespace ts.Completions { if (resolvedModuleSymbol !== moduleSymbol && // Don't add another completion for `export =` of a symbol that's already global. // So in `declare namespace foo {} declare module "foo" { export = foo; }`, there will just be the global completion for `foo`. - some(resolvedModuleSymbol.declarations, d => !!d.getSourceFile().externalModuleIndicator)) { + every(resolvedModuleSymbol.declarations, d => !!d.getSourceFile().externalModuleIndicator)) { symbols.push(resolvedModuleSymbol); symbolToSortTextMap[getSymbolId(resolvedModuleSymbol)] = SortText.AutoImportSuggestions; symbolToOriginInfoMap[getSymbolId(resolvedModuleSymbol)] = { kind: SymbolOriginInfoKind.Export, moduleSymbol, isDefaultExport: false }; diff --git a/tests/cases/fourslash/completionsImport_exportEquals_global.ts b/tests/cases/fourslash/completionsImport_exportEquals_global.ts new file mode 100644 index 0000000000000..7e11b169579fa --- /dev/null +++ b/tests/cases/fourslash/completionsImport_exportEquals_global.ts @@ -0,0 +1,31 @@ +/// + +// @module: es6 + +// @Filename: /console.d.ts +////interface Console {} +////declare var console: Console; +////declare module "console" { +//// export = console; +////} + +// @Filename: /react-native.d.ts +//// import 'console'; +////declare global { +//// interface Console {} +//// var console: Console; +////} + +// @Filename: /a.ts +////conso/**/ + +verify.completions({ + exact: completion.globalsPlus([{ + hasAction: undefined, // asserts that it does *not* have an action + name: "console" + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true + } +});