File tree Expand file tree Collapse file tree 2 files changed +7
-20
lines changed Expand file tree Collapse file tree 2 files changed +7
-20
lines changed Original file line number Diff line number Diff line change @@ -20258,22 +20258,15 @@ namespace ts {
2025820258         * and no required properties, call/construct signatures or index signatures
2025920259         */
2026020260        function isWeakType(type: Type): boolean {
20261-             if (!(type.flags & (TypeFlags.Object | TypeFlags.Intersection))) {
20262-                 return false;
20261+             if (type.flags & TypeFlags.Object) {
20262+                 const resolved = resolveStructuredTypeMembers(type as ObjectType);
20263+                 return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 &&
20264+                     resolved.properties.length > 0 && every(resolved.properties, p => !!(p.flags & SymbolFlags.Optional));
2026320265            }
20264-             if (!((type as ObjectType | IntersectionType).objectFlags & ObjectFlags.IsWeakTypeComputed)) {
20265-                 let isWeak;
20266-                 if (type.flags & TypeFlags.Object) {
20267-                     const resolved = resolveStructuredTypeMembers(type as ObjectType);
20268-                     isWeak = resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 &&
20269-                         resolved.properties.length > 0 && every(resolved.properties, p => !!(p.flags & SymbolFlags.Optional));
20270-                 }
20271-                 else {
20272-                     isWeak = every((type as IntersectionType).types, isWeakType);
20273-                 }
20274-                 (type as ObjectType | IntersectionType).objectFlags |= ObjectFlags.IsWeakTypeComputed | (isWeak ? ObjectFlags.IsWeakType : 0);
20266+             if (type.flags & TypeFlags.Intersection) {
20267+                 return every((type as IntersectionType).types, isWeakType);
2027520268            }
20276-             return !!((type as ObjectType | IntersectionType).objectFlags & ObjectFlags.IsWeakType) ;
20269+             return false ;
2027720270        }
2027820271
2027920272        function hasCommonProperties(source: Type, target: Type, isComparingJsxAttributes: boolean) {
Original file line number Diff line number Diff line change @@ -5360,12 +5360,6 @@ namespace ts {
53605360        IsNeverIntersectionComputed  =  1  <<  25 ,  // IsNeverLike flag has been computed 
53615361        /* @internal  */ 
53625362        IsNeverIntersection  =  1  <<  26 ,  // Intersection reduces to never 
5363- 
5364-         // Flags that require TypeFlags.Object or TypeFlags.Intersection 
5365-         /* @internal  */ 
5366-         IsWeakTypeComputed  =  1  <<  27 , 
5367-         /* @internal  */ 
5368-         IsWeakType  =  1  <<  28 , 
53695363    } 
53705364
53715365    /* @internal  */ 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments