@@ -3685,7 +3685,10 @@ namespace ts {
36853685 writePunctuation(writer, SyntaxKind.SemicolonToken);
36863686 writer.writeLine();
36873687 }
3688- buildIndexSignatureDisplay(resolved.stringIndexInfo, writer, IndexKind.String, enclosingDeclaration, globalFlags, symbolStack);
3688+ const stringIndexInfo = resolved.objectFlags & ObjectFlags.Deferred && resolved.stringIndexInfo ?
3689+ createIndexInfo(emptyObjectType, resolved.stringIndexInfo.isReadonly, resolved.stringIndexInfo.declaration) :
3690+ resolved.stringIndexInfo;
3691+ buildIndexSignatureDisplay(stringIndexInfo, writer, IndexKind.String, enclosingDeclaration, globalFlags, symbolStack);
36893692 buildIndexSignatureDisplay(resolved.numberIndexInfo, writer, IndexKind.Number, enclosingDeclaration, globalFlags, symbolStack);
36903693 for (const p of resolved.properties) {
36913694 if (globalFlags & TypeFormatFlags.WriteClassExpressionAsTypeLiteral) {
@@ -3696,7 +3699,7 @@ namespace ts {
36963699 writer.reportPrivateInBaseOfClassExpression(symbolName(p));
36973700 }
36983701 }
3699- const t = getTypeOfSymbol(p);
3702+ const t = getCheckFlags(p) & CheckFlags.Deferred ? emptyObjectType : getTypeOfSymbol(p);
37003703 if (p.flags & (SymbolFlags.Function | SymbolFlags.Method) && !getPropertiesOfObjectType(t).length) {
37013704 const signatures = getSignaturesOfType(t, SignatureKind.Call);
37023705 for (const signature of signatures) {
@@ -11325,7 +11328,7 @@ namespace ts {
1132511328 return undefined;
1132611329 }
1132711330 }
11328- const deferred = createObjectType(ObjectFlags.Deferred | ObjectFlags.Anonymous, undefined) as DeferredMappedType;
11331+ const deferred = createObjectType(ObjectFlags.Deferred | ObjectFlags.Anonymous, /*symbol*/ undefined) as DeferredMappedType;
1132911332 deferred.source = source;
1133011333 deferred.mappedType = target;
1133111334 return deferred;
0 commit comments