@@ -6115,12 +6115,12 @@ namespace ts {
61156115 }
61166116
61176117 function resolveDeferredMappedTypeMembers(type: DeferredMappedType) {
6118- const indexInfo = type.targetIndexInfo ;
6118+ const indexInfo = getIndexInfoOfType( type.source, IndexKind.String) ;
61196119 const readonlyMask = type.mappedType.declaration.readonlyToken ? false : true;
61206120 const optionalMask = type.mappedType.declaration.questionToken ? 0 : SymbolFlags.Optional;
61216121 const stringIndexInfo = indexInfo && createIndexInfo(inferDeferredMappedType(indexInfo.type, type.mappedType), readonlyMask && indexInfo.isReadonly);
61226122 const members = createSymbolTable();
6123- for (const prop of type.sourceProperties ) {
6123+ for (const prop of getPropertiesOfType( type.source) ) {
61246124 const checkFlags = CheckFlags.Deferred | (readonlyMask && isReadonlySymbol(prop) ? CheckFlags.Readonly : 0);
61256125 const inferredProp = createSymbol(SymbolFlags.Property | prop.flags & optionalMask, prop.escapedName, checkFlags) as DeferredTransientSymbol;
61266126 inferredProp.declarations = prop.declarations;
@@ -11312,8 +11312,7 @@ namespace ts {
1131211312
1131311313 function createDeferredMappedType(source: Type, target: MappedType) {
1131411314 const properties = getPropertiesOfType(source);
11315- let indexInfo = getIndexInfoOfType(source, IndexKind.String);
11316- if (properties.length === 0 && !indexInfo) {
11315+ if (properties.length === 0 && !getIndexInfoOfType(source, IndexKind.String)) {
1131711316 return undefined;
1131811317 }
1131911318 // If any property contains context sensitive functions that have been skipped, the source type
@@ -11324,9 +11323,8 @@ namespace ts {
1132411323 }
1132511324 }
1132611325 const deferred = createObjectType(ObjectFlags.Deferred | ObjectFlags.Anonymous, undefined) as DeferredMappedType;
11326+ deferred.source = source;
1132711327 deferred.mappedType = target;
11328- deferred.sourceProperties = properties;
11329- deferred.targetIndexInfo = indexInfo;
1133011328 return deferred;
1133111329 }
1133211330
0 commit comments