diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b5443127a8b..ca8d6c98a4b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14349,7 +14349,10 @@ namespace ts { // typeof a.b.c is normally resolved using `checkExpression` which in turn defers to `checkQualifiedName` // That, in turn, ultimately uses `getPropertyOfType` on the type of the symbol, which differs slightly from // the `exports` lookup process that only looks up namespace members which is used for most type references - const next = node.isTypeOf ? getPropertyOfType(getTypeOfSymbol(resolveSymbol(currentNamespace)), current.escapedText) : getSymbol(getExportsOfSymbol(getMergedSymbol(resolveSymbol(currentNamespace))), current.escapedText, meaning); + const mergedResolvedSymbol = getMergedSymbol(resolveSymbol(currentNamespace)); + const next = node.isTypeOf + ? getPropertyOfType(getTypeOfSymbol(mergedResolvedSymbol), current.escapedText) + : getSymbol(getExportsOfSymbol(mergedResolvedSymbol), current.escapedText, meaning); if (!next) { error(current, Diagnostics.Namespace_0_has_no_exported_member_1, getFullyQualifiedName(currentNamespace), declarationNameToString(current)); return links.resolvedType = errorType;