diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d6b67c456ca..533fffda805 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14075,12 +14075,12 @@ namespace ts { } function checkBaseTypeAccessibility(type: ObjectType, node: ExpressionWithTypeArguments) { - const typeClassDeclaration = getClassLikeDeclarationOfSymbol(type.symbol); - if (!isNodeWithinClass(node, typeClassDeclaration)) { - const signatures = getSignaturesOfType(type, SignatureKind.Construct); - if (signatures.length) { - const declaration = signatures[0].declaration; - if (declaration && declaration.flags & NodeFlags.Private) { + const signatures = getSignaturesOfType(type, SignatureKind.Construct); + if (signatures.length) { + const declaration = signatures[0].declaration; + if (declaration && declaration.flags & NodeFlags.Private) { + const typeClassDeclaration = getClassLikeDeclarationOfSymbol(type.symbol); + if (!isNodeWithinClass(node, typeClassDeclaration)) { error(node, Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, (node.expression).text); } }