diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a8af11e7803..990bfd546a3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8938,7 +8938,9 @@ namespace ts { !(target.flags & TypeFlags.Union) && !isIntersectionConstituent && source !== globalObjectType && - getPropertiesOfType(source).length > 0 && + (getPropertiesOfType(source).length > 0 || + getSignaturesOfType(source, SignatureKind.Call).length > 0 || + getSignaturesOfType(source, SignatureKind.Construct).length > 0) && isWeakType(target) && !hasCommonProperties(source, target)) { if (reportErrors) {