diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts
index 825d339cfd3bd..484bb049e46c5 100644
--- a/src/compiler/checker.ts
+++ b/src/compiler/checker.ts
@@ -45308,7 +45308,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
meaning |= SymbolFlags.Alias;
- const entityNameSymbol = isEntityNameExpression(name) ? resolveEntityName(name, meaning) : undefined;
+ const entityNameSymbol = isEntityNameExpression(name) ? resolveEntityName(name, meaning, /*ignoreErrors*/ true) : undefined;
if (entityNameSymbol) {
return entityNameSymbol;
}
diff --git a/tests/cases/fourslash/classSymbolLookup.ts b/tests/cases/fourslash/classSymbolLookup.ts
new file mode 100644
index 0000000000000..fca63b6174c6a
--- /dev/null
+++ b/tests/cases/fourslash/classSymbolLookup.ts
@@ -0,0 +1,15 @@
+///
+
+// Issue #53247
+
+//// class Foo {
+//// private constructor(value : T, context: C){ }
+//// static readonly makeFoo = (context : C) =>
+//// (value : T) =>
+//// new Foo(value, context);
+//// }
+//// const x = Foo.makeFoo<{}>;
+//// x({});
+
+verify.encodedSemanticClassificationsLength("2020", 75);
+verify.getSemanticDiagnostics([]);
\ No newline at end of file