diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2494009333b..adf23cc2ae7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2916,13 +2916,14 @@ namespace ts { } function baseTypeHasUnappliedOuterTypeParameters(type: Type): boolean { - const originalBaseType = type; - const originalTypeReference = type; - if (originalBaseType.outerTypeParameters) { - // an unapplied type type parameter is one + const outerTypeParameters = (type).outerTypeParameters; + const typeArguments = (type).typeArguments; + if (outerTypeParameters) { + // an unapplied type parameter is one // whose argument symbol is still the same as the parameter symbol - for (let i = 0; i < originalBaseType.outerTypeParameters.length; i++) { - if (originalBaseType.outerTypeParameters[i].symbol === originalTypeReference.typeArguments[i].symbol) { + const numParameters = outerTypeParameters.length; + for (let i = 0; i < numParameters; i++) { + if (outerTypeParameters[i].symbol === typeArguments[i].symbol) { return true; } }