Prettier 与 ? 冲突。 (问号和点)在 typescript-react 内的 prop-brackets 有语法错误

Prettier conflicts with ?. (question mark and dot) in typescript-react inside of prop-brackets with syntax error

表达式

<Button
        title={props.children?.toString()}
        buttonStyle={$.buttonStyle}
        titleStyle={$.titleStyle}

      />

给出下一个错误

SyntaxError: Expression expected.
title={props.children?.toString()}
                      ^

有什么办法可以解决吗?
Eslint with prettier-plugin 给出了同样的错误。 解析器问题-typescript.js

您可能需要更新 typescript-eslint 插件。

问题出在新版本的 Prettier 4.5.0
如果您将 prettier 降级到 v4.0.0 - 您的问题将会崩溃:)

如果您的 Prettier 版本已过时,它可能不支持 Version 1.19 中引入的可选链接。如果 prettier 没有在您的 package.lock 中保存为 "devDependency",那么您的 IDE 将默认使用 prettier 的任何全局模块。推荐使用项目本地依赖中的prettier

要将 prettier 保存为 devDependency,运行:

npm install prettier -D --save-exact

Typescript 于 2019 年 10 月通过 版本 3.7 引入了可选链接,然后 Prettier 于 2019 年 11 月通过 Version 1.19.

引入了它。