@@ -7126,35 +7126,36 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
71267126 const methodDeclaration = signatureToSignatureDeclarationHelper(signature, SyntaxKind.MethodSignature, context, { name: propertyName, questionToken: optionalToken }) as MethodSignature;
71277127 typeElements.push(preserveCommentsOn(methodDeclaration));
71287128 }
7129+ if (signatures.length || !optionalToken) {
7130+ return;
7131+ }
7132+ }
7133+ let propertyTypeNode: TypeNode;
7134+ if (shouldUsePlaceholderForProperty(propertySymbol, context)) {
7135+ propertyTypeNode = createElidedInformationPlaceholder(context);
71297136 }
71307137 else {
7131- let propertyTypeNode: TypeNode;
7132- if (shouldUsePlaceholderForProperty(propertySymbol, context)) {
7133- propertyTypeNode = createElidedInformationPlaceholder(context );
7138+ if (propertyIsReverseMapped) {
7139+ context.reverseMappedStack ||= [];
7140+ context.reverseMappedStack.push(propertySymbol as ReverseMappedSymbol );
71347141 }
7135- else {
7136- if (propertyIsReverseMapped) {
7137- context.reverseMappedStack ||= [];
7138- context.reverseMappedStack.push(propertySymbol as ReverseMappedSymbol);
7139- }
7140- propertyTypeNode = propertyType ? serializeTypeForDeclaration(context, propertyType, propertySymbol, saveEnclosingDeclaration) : factory.createKeywordTypeNode(SyntaxKind.AnyKeyword);
7141- if (propertyIsReverseMapped) {
7142- context.reverseMappedStack!.pop();
7143- }
7142+ propertyTypeNode = propertyType ? serializeTypeForDeclaration(context, propertyType, propertySymbol, saveEnclosingDeclaration) : factory.createKeywordTypeNode(SyntaxKind.AnyKeyword);
7143+ if (propertyIsReverseMapped) {
7144+ context.reverseMappedStack!.pop();
71447145 }
7146+ }
71457147
7146- const modifiers = isReadonlySymbol(propertySymbol) ? [factory.createToken(SyntaxKind.ReadonlyKeyword)] : undefined;
7147- if (modifiers) {
7148- context.approximateLength += 9;
7149- }
7150- const propertySignature = factory.createPropertySignature(
7151- modifiers,
7152- propertyName,
7153- optionalToken,
7154- propertyTypeNode);
7155-
7156- typeElements.push(preserveCommentsOn(propertySignature));
7148+ const modifiers = isReadonlySymbol(propertySymbol) ? [factory.createToken(SyntaxKind.ReadonlyKeyword)] : undefined;
7149+ if (modifiers) {
7150+ context.approximateLength += 9;
71577151 }
7152+ const propertySignature = factory.createPropertySignature(
7153+ modifiers,
7154+ propertyName,
7155+ optionalToken,
7156+ propertyTypeNode);
7157+
7158+ typeElements.push(preserveCommentsOn(propertySignature));
71587159
71597160 function preserveCommentsOn<T extends Node>(node: T) {
71607161 if (some(propertySymbol.declarations, d => d.kind === SyntaxKind.JSDocPropertyTag)) {
0 commit comments