From c592ee781db66638da3e680974d99369ad546e0f Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 23 May 2022 11:07:33 -0700 Subject: [PATCH] Instantiate original target type in substituteIndexedMappedType (#49205) --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ec43221b1f7..7bcc6f5bdc6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15798,7 +15798,7 @@ namespace ts { function substituteIndexedMappedType(objectType: MappedType, index: Type) { const mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]); const templateMapper = combineTypeMappers(objectType.mapper, mapper); - return instantiateType(getTemplateTypeFromMappedType(objectType), templateMapper); + return instantiateType(getTemplateTypeFromMappedType(objectType.target as MappedType || objectType), templateMapper); } function getIndexedAccessType(objectType: Type, indexType: Type, accessFlags = AccessFlags.None, accessNode?: ElementAccessExpression | IndexedAccessTypeNode | PropertyName | BindingName | SyntheticExpression, aliasSymbol?: Symbol, aliasTypeArguments?: readonly Type[]): Type {