File tree Expand file tree Collapse file tree 3 files changed +18
-14
lines changed Expand file tree Collapse file tree 3 files changed +18
-14
lines changed Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ namespace ts {
108
108
getAliasedSymbol: resolveAlias,
109
109
getEmitResolver,
110
110
getExportsOfModule: getExportsOfModuleAsArray,
111
- resolveExternalModuleSymbol ,
111
+ getExportsAndPropertiesOfModule ,
112
112
getAmbientModules,
113
113
getJsxElementAttributesType,
114
114
getJsxIntrinsicTagNames,
@@ -1528,6 +1528,15 @@ namespace ts {
1528
1528
return symbolsToArray(getExportsOfModule(moduleSymbol));
1529
1529
}
1530
1530
1531
+ function getExportsAndPropertiesOfModule(moduleSymbol: Symbol): Symbol[] {
1532
+ const exports = getExportsOfModuleAsArray(moduleSymbol);
1533
+ const exportEquals = resolveExternalModuleSymbol(moduleSymbol);
1534
+ if (exportEquals !== moduleSymbol) {
1535
+ addRange(exports, getPropertiesOfType(getTypeOfSymbol(exportEquals)));
1536
+ }
1537
+ return exports;
1538
+ }
1539
+
1531
1540
function tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined {
1532
1541
const symbolTable = getExportsOfModule(moduleSymbol);
1533
1542
if (symbolTable) {
Original file line number Diff line number Diff line change @@ -2370,7 +2370,8 @@ namespace ts {
2370
2370
isValidPropertyAccess ( node : PropertyAccessExpression | QualifiedName , propertyName : string ) : boolean ;
2371
2371
getAliasedSymbol ( symbol : Symbol ) : Symbol ;
2372
2372
getExportsOfModule ( moduleSymbol : Symbol ) : Symbol [ ] ;
2373
- /* @internal */ resolveExternalModuleSymbol ( moduleSymbol : Symbol ) : Symbol ;
2373
+ /** Unlike `getExportsOfModule`, this includes properties of an `export =` value. */
2374
+ /* @internal */ getExportsAndPropertiesOfModule ( moduleSymbol : Symbol ) : Symbol [ ] ;
2374
2375
2375
2376
getJsxElementAttributesType ( elementNode : JsxOpeningLikeElement ) : Type ;
2376
2377
getJsxIntrinsicTagNames ( ) : Symbol [ ] ;
Original file line number Diff line number Diff line change @@ -1318,20 +1318,14 @@ namespace ts.Completions {
1318
1318
isMemberCompletion = true ;
1319
1319
isNewIdentifierLocation = false ;
1320
1320
1321
- let exports : Symbol [ ] ;
1322
- const moduleSpecifierSymbol = typeChecker . getSymbolAtLocation ( importOrExportDeclaration . moduleSpecifier ) ;
1323
- if ( moduleSpecifierSymbol ) {
1324
- exports = typeChecker . getExportsOfModule ( moduleSpecifierSymbol ) ;
1325
- const exportEquals = typeChecker . resolveExternalModuleSymbol ( moduleSpecifierSymbol ) ;
1326
- if ( exportEquals !== moduleSpecifierSymbol ) {
1327
- // Location doesn't matter so long as it's not an identifier.
1328
- const exportEqualsType = typeChecker . getTypeOfSymbolAtLocation ( exportEquals , moduleSpecifier ) ;
1329
- exports = ts . concatenate ( exports , typeChecker . getPropertiesOfType ( exportEqualsType ) ) ;
1330
- }
1321
+ const moduleSpecifierSymbol = typeChecker . getSymbolAtLocation ( moduleSpecifier ) ;
1322
+ if ( ! moduleSpecifierSymbol ) {
1323
+ symbols = emptyArray ;
1324
+ return true ;
1331
1325
}
1332
1326
1333
- symbols = exports ? filterNamedImportOrExportCompletionItems ( exports , namedImportsOrExports . elements ) : emptyArray ;
1334
-
1327
+ const exports = typeChecker . getExportsAndPropertiesOfModule ( moduleSpecifierSymbol ) ;
1328
+ symbols = filterNamedImportOrExportCompletionItems ( exports , namedImportsOrExports . elements ) ;
1335
1329
return true ;
1336
1330
}
1337
1331
You can’t perform that action at this time.
0 commit comments