From e2c6818894ddb63e5d3ac23db45a57f3a81586e9 Mon Sep 17 00:00:00 2001 From: Cameron Boyd Date: Fri, 23 May 2025 13:42:38 -0700 Subject: [PATCH] Return an error if either the left or right value are of type boolean --- src/compiler/checker.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a5c161abae051..3bc7b37cea902 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -40116,6 +40116,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { return sourceType; } + function isBoolean(value: any): boolean { + return (value === typeof "boolean"); + } + /** * This is a *shallow* check: An expression is side-effect-free if the * evaluation of the expression *itself* cannot produce side effects. @@ -40612,6 +40616,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { leftType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(leftType, left)); rightType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(rightType, right)); reportOperatorErrorUnless((left, right) => { + if (isBoolean(left) || isBoolean(right)) { + return true; + } if (isTypeAny(left) || isTypeAny(right)) { return true; }