From 908548ef9017e654345266c68a3a0164117eb0a4 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 2 Sep 2022 06:53:56 -0700 Subject: [PATCH] 'in' operator shouldn't narrow {} originating in unknown --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1ac041a3653c2..280b3dc51ef1a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -25150,7 +25150,7 @@ namespace ts { function narrowByInKeyword(type: Type, name: __String, assumeTrue: boolean) { if (type.flags & TypeFlags.Union - || type.flags & TypeFlags.Object && declaredType !== type + || type.flags & TypeFlags.Object && declaredType !== type && !(declaredType === unknownType && isEmptyAnonymousObjectType(type)) || isThisTypeParameter(type) || type.flags & TypeFlags.Intersection && every((type as IntersectionType).types, t => t.symbol !== globalThisSymbol)) { return filterType(type, t => isTypePresencePossible(t, name, assumeTrue));