diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2bc0893899..b0bdca3c41 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7621,6 +7621,9 @@ namespace ts { const visitedFlowStart = visitedFlowCount; const result = getTypeAtFlowNode(reference.flowNode); visitedFlowCount = visitedFlowStart; + if (reference.parent.kind === SyntaxKind.NonNullExpression && getTypeWithFacts(result, TypeFacts.NEUndefinedOrNull) === nothingType) { + return declaredType; + } return result; function getTypeAtFlowNode(flow: FlowNode): Type {