diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0b4ae0d9d3..7b39ce98b9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15958,9 +15958,14 @@ namespace ts { } } + function isTypeReferenceToSameTarget(source: Type, target: Type) { + return !!(getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && + (source).target === (target).target); + } + function typeIdenticalToSomeType(type: Type, types: Type[]): boolean { for (const t of types) { - if (isTypeIdenticalTo(t, type)) { + if (t === type || !isTypeReferenceToSameTarget(t, type) && isTypeIdenticalTo(t, type)) { return true; } }