diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 81c2a9590ba..f044ee8e375 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15587,7 +15587,8 @@ namespace ts { } } } - if (getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && (source).target === (target).target) { + if (getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && ( + (source).target === (target).target || isArrayType(source) && isArrayType(target))) { // If source and target are references to the same generic type, infer from type arguments inferFromTypeArguments((source).typeArguments || emptyArray, (target).typeArguments || emptyArray, getVariances((source).target)); }