mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-31 08:07:10 -05:00
Narrow types by typeof operands with extra parenthesis (#60928)
This commit is contained in:
committed by
GitHub
parent
c0b3ff2da1
commit
a5196c7d3b
@@ -1318,9 +1318,11 @@ function createBinder(): (file: SourceFile, options: CompilerOptions) => void {
|
||||
case SyntaxKind.ExclamationEqualsToken:
|
||||
case SyntaxKind.EqualsEqualsEqualsToken:
|
||||
case SyntaxKind.ExclamationEqualsEqualsToken:
|
||||
return isNarrowableOperand(expr.left) || isNarrowableOperand(expr.right) ||
|
||||
isNarrowingTypeofOperands(expr.right, expr.left) || isNarrowingTypeofOperands(expr.left, expr.right) ||
|
||||
(isBooleanLiteral(expr.right) && isNarrowingExpression(expr.left) || isBooleanLiteral(expr.left) && isNarrowingExpression(expr.right));
|
||||
const left = skipParentheses(expr.left);
|
||||
const right = skipParentheses(expr.right);
|
||||
return isNarrowableOperand(left) || isNarrowableOperand(right) ||
|
||||
isNarrowingTypeofOperands(right, left) || isNarrowingTypeofOperands(left, right) ||
|
||||
(isBooleanLiteral(right) && isNarrowingExpression(left) || isBooleanLiteral(left) && isNarrowingExpression(right));
|
||||
case SyntaxKind.InstanceOfKeyword:
|
||||
return isNarrowableOperand(expr.left);
|
||||
case SyntaxKind.InKeyword:
|
||||
|
||||
Reference in New Issue
Block a user