@@ -59,7 +59,7 @@ namespace ts.formatting {
5959 // in other cases there should be no space between '?' and next token
6060 rule ( "NoSpaceAfterQuestionMark" , SyntaxKind . QuestionToken , anyToken , [ isNonJsxSameLineTokenContext ] , RuleAction . DeleteSpace ) ,
6161
62- rule ( "NoSpaceBeforeDot" , anyToken , [ SyntaxKind . DotToken , SyntaxKind . QuestionDotToken ] , [ isNonJsxSameLineTokenContext ] , RuleAction . DeleteSpace ) ,
62+ rule ( "NoSpaceBeforeDot" , anyToken , [ SyntaxKind . DotToken , SyntaxKind . QuestionDotToken ] , [ isNonJsxSameLineTokenContext , isNotPropertyAccessOnNumericLiteral ] , RuleAction . DeleteSpace ) ,
6363 rule ( "NoSpaceAfterDot" , [ SyntaxKind . DotToken , SyntaxKind . QuestionDotToken ] , anyToken , [ isNonJsxSameLineTokenContext ] , RuleAction . DeleteSpace ) ,
6464
6565 rule ( "NoSpaceBetweenImportParenInImportType" , SyntaxKind . ImportKeyword , SyntaxKind . OpenParenToken , [ isNonJsxSameLineTokenContext , isImportTypeContext ] , RuleAction . DeleteSpace ) ,
@@ -893,4 +893,8 @@ namespace ts.formatting {
893893 function isSemicolonInsertionContext ( context : FormattingContext ) : boolean {
894894 return positionIsASICandidate ( context . currentTokenSpan . end , context . currentTokenParent , context . sourceFile ) ;
895895 }
896+
897+ function isNotPropertyAccessOnNumericLiteral ( context : FormattingContext ) : boolean {
898+ return ! isPropertyAccessExpression ( context . contextNode ) || ! isNumericLiteral ( context . contextNode . expression ) ;
899+ }
896900}
0 commit comments