Add missed resolveSymbol in commonjs import resolution (#41479)

Fixes resolution of export aliases in the postfix-property-access case
of commonjs require:

```js
const { x } = require('./foo').nested
x
```

This program would previously fail if `x` was an export alias.

Fixes #41422
This commit is contained in:
Nathan Shively-Sanders
2020-11-10 11:28:49 -08:00
committed by GitHub
parent 728c9cc1bf
commit 9fb6acf1e1
4 changed files with 110 additions and 1 deletions

View File

@@ -2790,7 +2790,7 @@ namespace ts {
const resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);
const name = node.propertyName || node.name;
if (commonJSPropertyAccess && resolved && isIdentifier(name)) {
return getPropertyOfType(getTypeOfSymbol(resolved), name.escapedText);
return resolveSymbol(getPropertyOfType(getTypeOfSymbol(resolved), name.escapedText), dontResolveAlias);
}
markSymbolOfAliasDeclarationIfTypeOnly(node, /*immediateTarget*/ undefined, resolved, /*overwriteEmpty*/ false);
return resolved;