From 88fd3d54b2158e9c1d62cf8441c0f090adecf385 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 27 Aug 2016 09:40:49 -0700 Subject: [PATCH] Use union type when binding element has initializer --- src/compiler/checker.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d63f85de71e..7ad58f4717b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2975,7 +2975,9 @@ namespace ts { if (strictNullChecks && declaration.initializer && !(getFalsyFlags(checkExpressionCached(declaration.initializer)) & TypeFlags.Undefined)) { type = getTypeWithFacts(type, TypeFacts.NEUndefined); } - return type; + return declaration.initializer ? + getUnionType([type, checkExpressionCached(declaration.initializer)], /*subtypeReduction*/ true) : + type; } function getTypeForVariableLikeDeclarationFromJSDocComment(declaration: VariableLikeDeclaration) {