@@ -7126,35 +7126,36 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
7126
7126
const methodDeclaration = signatureToSignatureDeclarationHelper(signature, SyntaxKind.MethodSignature, context, { name: propertyName, questionToken: optionalToken }) as MethodSignature;
7127
7127
typeElements.push(preserveCommentsOn(methodDeclaration));
7128
7128
}
7129
+ if (signatures.length || !optionalToken) {
7130
+ return;
7131
+ }
7132
+ }
7133
+ let propertyTypeNode: TypeNode;
7134
+ if (shouldUsePlaceholderForProperty(propertySymbol, context)) {
7135
+ propertyTypeNode = createElidedInformationPlaceholder(context);
7129
7136
}
7130
7137
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 );
7134
7141
}
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();
7144
7145
}
7146
+ }
7145
7147
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;
7157
7151
}
7152
+ const propertySignature = factory.createPropertySignature(
7153
+ modifiers,
7154
+ propertyName,
7155
+ optionalToken,
7156
+ propertyTypeNode);
7157
+
7158
+ typeElements.push(preserveCommentsOn(propertySignature));
7158
7159
7159
7160
function preserveCommentsOn<T extends Node>(node: T) {
7160
7161
if (some(propertySymbol.declarations, d => d.kind === SyntaxKind.JSDocPropertyTag)) {
0 commit comments