From be708bbb0a0e4350636e4ecc3b84d16fe26f5f86 Mon Sep 17 00:00:00 2001 From: kingwl Date: Fri, 10 Apr 2020 14:19:59 +0800 Subject: [PATCH] fix assignment check of logical assignment --- src/compiler/checker.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c08d2a2348..80f535d180 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -19772,6 +19772,9 @@ namespace ts { case SyntaxKind.BinaryExpression: switch ((node).operatorToken.kind) { case SyntaxKind.EqualsToken: + case SyntaxKind.BarBarEqualsToken: + case SyntaxKind.AmpersandAmpersandEqualsToken: + case SyntaxKind.QuestionQuestionEqualsToken: return getReferenceCandidate((node).left); case SyntaxKind.CommaToken: return getReferenceCandidate((node).right); @@ -28590,7 +28593,7 @@ namespace ts { getUnionType([extractDefinitelyFalsyTypes(strictNullChecks ? leftType : getBaseTypeOfLiteralType(rightType)), rightType]) : leftType; if (operator === SyntaxKind.AmpersandAmpersandEqualsToken) { - checkAssignmentOperator(resultType); + checkAssignmentOperator(rightType); } return resultType; }