VSCode中错误的TSX三元标记块格式

问题描述

我非常喜欢“保存时格式化” VSCode功能。但是,现在我在VS Code(1.49.2)中遇到tsx文件的令人讨厌的错误格式。

这里是一个例子。这里两行有额外的缩进(“单个”块)

import React from 'react';

const TestComponent = (props: { isList: boolean }) => {
  return (
    <div>
      {props.isList ? (
        <div>liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiist</div>
      ) : (
          <div>siiiiiiiiiiiiiiiiiiiiiiiingle</div>
        )}
    </div>
  );
};

export default TestComponent;

jsx文件中的相同代码格式正确

import React from 'react';

const TestComponent = props => {
  return (
    <div>
      {props.isList ? (
        <div>liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiist</div>
      ) : (
        <div>siiiiiiiiiiiiiiiiiiiiiiiingle</div>
      )}
    </div>
  );
};

export default TestComponent;

我尝试将默认的vscode格式化程序切换为eslintnullprettier(用户/工作区)-没什么区别。当我运行prettier --write src/components/TestComponent.tsx时,tsx文件的格式正确。 我还检查了VS Code中特定于打字稿的格式设置,但找不到任何相关内容。对于测试,我删除了.eslint.js配置文件,而我的项目没有.prettierrc配置。

解决方法

我通过转到用户设置并删除

来解决此问题
    "[javascript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },

并将漂亮的页面配置为默认格式器

,

$HOME/.config/Code/User/settings.json(在 Linux 上)指定的格式错误,类似

"[typescriptreact]": {
  "editor.defaultFormatter": "vscode.typescript-language-features"
}

应将其设置为esbenp.prettier-vscode或将其删除以使用默认值

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...