diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2bd5d40bffa..44c7eba605d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -11829,6 +11829,9 @@ namespace ts { errorInfo = saveErrorInfo; } } + else if (isTupleType(source) && (isArrayType(target) || isReadonlyArrayType(target)) || isArrayType(source) && isReadonlyArrayType(target)) { + return isRelatedTo(getIndexTypeOfType(source, IndexKind.Number) || anyType, getIndexTypeOfType(target, IndexKind.Number) || anyType, reportErrors); + } // Even if relationship doesn't hold for unions, intersections, or generic type references, // it may hold in a structural comparison. // In a check of the form X = A & B, we will have previously checked if A relates to X or B relates