mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
fix(55694): format issues (#55721)
This commit is contained in:
parent
d1738cef6f
commit
a0c51b5336
@ -106,7 +106,7 @@ export function getAllRules(): RuleSpec[] {
|
||||
rule("SpaceAfterQuestionMarkInConditionalOperator", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], RuleAction.InsertSpace),
|
||||
|
||||
// in other cases there should be no space between '?' and next token
|
||||
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
|
||||
rule("NoSpaceAfterQuestionMark", SyntaxKind.QuestionToken, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], RuleAction.DeleteSpace),
|
||||
|
||||
rule("NoSpaceBeforeDot", anyToken, [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], RuleAction.DeleteSpace),
|
||||
rule("NoSpaceAfterDot", [SyntaxKind.DotToken, SyntaxKind.QuestionDotToken], anyToken, [isNonJsxSameLineTokenContext], RuleAction.DeleteSpace),
|
||||
@ -561,6 +561,14 @@ function isTypeAnnotationContext(context: FormattingContext): boolean {
|
||||
isFunctionLikeKind(contextKind);
|
||||
}
|
||||
|
||||
function isOptionalPropertyContext(context: FormattingContext) {
|
||||
return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;
|
||||
}
|
||||
|
||||
function isNonOptionalPropertyContext(context: FormattingContext) {
|
||||
return !isOptionalPropertyContext(context);
|
||||
}
|
||||
|
||||
function isConditionalOperatorContext(context: FormattingContext): boolean {
|
||||
return context.contextNode.kind === SyntaxKind.ConditionalExpression ||
|
||||
context.contextNode.kind === SyntaxKind.ConditionalType;
|
||||
|
||||
13
tests/cases/fourslash/optionalPropertyFormatting.ts
Normal file
13
tests/cases/fourslash/optionalPropertyFormatting.ts
Normal file
@ -0,0 +1,13 @@
|
||||
///<reference path="fourslash.ts"/>
|
||||
|
||||
////export class C extends Error {
|
||||
//// message: string;
|
||||
//// data? = {};
|
||||
////}
|
||||
|
||||
format.document();
|
||||
verify.currentFileContentIs(
|
||||
`export class C extends Error {
|
||||
message: string;
|
||||
data? = {};
|
||||
}`);
|
||||
Loading…
x
Reference in New Issue
Block a user