Merge pull request #23782 from Microsoft/controlFlowNullTypeAndLiteral

Control flow for null type vs. literal
This commit is contained in:
Anders Hejlsberg
2018-04-30 11:38:00 -07:00
committed by GitHub
6 changed files with 287 additions and 1 deletions

View File

@@ -13690,7 +13690,7 @@ namespace ts {
const doubleEquals = operator === SyntaxKind.EqualsEqualsToken || operator === SyntaxKind.ExclamationEqualsToken;
const facts = doubleEquals ?
assumeTrue ? TypeFacts.EQUndefinedOrNull : TypeFacts.NEUndefinedOrNull :
value.kind === SyntaxKind.NullKeyword ?
valueType.flags & TypeFlags.Null ?
assumeTrue ? TypeFacts.EQNull : TypeFacts.NENull :
assumeTrue ? TypeFacts.EQUndefined : TypeFacts.NEUndefined;
return getTypeWithFacts(type, facts);