diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7913520bfdb..2cbaf0e1992 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9614,6 +9614,11 @@ namespace ts { if (sourceInfo) { return indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors); } + if (isGenericMappedType(source)) { + // A generic mapped type { [P in K]: T } is related to an index signature { [x: string]: U } + // if T is related to U. + return kind === IndexKind.String && isRelatedTo(getTemplateTypeFromMappedType(source), targetInfo.type, reportErrors); + } if (isObjectLiteralType(source)) { let related = Ternary.True; if (kind === IndexKind.String) {