diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 59d64ad23..cc8aaca10 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -4006,6 +4006,7 @@ function printMemberChain(path, options, print) { let i = 1; for (; i < printedNodes.length; ++i) { if ( + printedNodes[i].node.type === "TSNonNullExpression" || printedNodes[i].node.type === "CallExpression" || (printedNodes[i].node.type === "MemberExpression" && printedNodes[i].node.computed && diff --git a/tests/typescript_non_null/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_non_null/__snapshots__/jsfmt.spec.js.snap index dbfc614f4..ea63a6f9f 100644 --- a/tests/typescript_non_null/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_non_null/__snapshots__/jsfmt.spec.js.snap @@ -6,6 +6,8 @@ const { somePropThatHasAReallyLongName, anotherPropThatHasALongName } = this.pro const { somePropThatHasAReallyLongName, anotherPropThatHasALongName } = this.props.imReallySureAboutThis!.anotherObject; this.foo.get("bar")!.doThings().more(); + +foo!.bar().baz().what(); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const { somePropThatHasAReallyLongName, @@ -22,6 +24,11 @@ this.foo .doThings() .more(); +foo! + .bar() + .baz() + .what(); + `; exports[`parens.ts 1`] = ` diff --git a/tests/typescript_non_null/member-chain.js b/tests/typescript_non_null/member-chain.js index 382139ffb..7d6ba3972 100644 --- a/tests/typescript_non_null/member-chain.js +++ b/tests/typescript_non_null/member-chain.js @@ -3,3 +3,5 @@ const { somePropThatHasAReallyLongName, anotherPropThatHasALongName } = this.pro const { somePropThatHasAReallyLongName, anotherPropThatHasALongName } = this.props.imReallySureAboutThis!.anotherObject; this.foo.get("bar")!.doThings().more(); + +foo!.bar().baz().what();