如何在 Visual Studio 代码中使用 TypeScript 和 JavaScript 禁用自动导入的自动分号?

How to disable automatic semicolon for auto imports with TypeScript and JavaScript in Visual Studio Code?

使用 VS Code 和 Typescript 或 JavaScript 时,VS Code 建议自动导入。但是当自动插入导入时,它会在行尾添加一个分号。我不要这个分号。此外,它在我的 tslint 中也是这样配置的。

有没有办法告诉 VS Code 不要插入这个分号?

对于 VSCode 1.30.2,TypeScript 3.3,目前无法做到这一点。

您可以在此处查看功能请求: https://github.com/Microsoft/TypeScript/issues/19882

但是这个功能可能会出现在 TypeScript 3.4 中,因为@RyanCavanaugh 将里程碑更新到了 3.4

同时,我使用semi-standard风格。

此外,纯 standard 样式在 VSCode 中效果不佳,因为对齐混乱:

function foo() {
  const x = {}

    ;['a'].map(x => console.log(x)) // <-- alignment is bad
}

VS Code 1.38 尝试 infer if semicolons should be used 在 JavaScript 和 TypeScript 中进行自动导入和重构。

使用 VS Code 1.39 和 TypeScript 3.7+,您还可以显式 set 是否应使用分号:

"javascript.format.semicolons": "remove",
"typescript.format.semicolons": "remove"

(请注意,在发布 VS Code 1.40 之前,您可能需要安装 this extension 才能在 VS Code 中实际启用 TypeScript 3.7)

为了添加到回复中:

设置应该是

    "javascript.format.semicolons": "remove",
    "typescript.format.semicolons": "remove"

(不是"javascrriptscript.format.semicolons"

settings 的文档说:

    "javascript.format.semicolons"

可以有三个不同的选项:

    "ignore" -> Dont insert or remove any semicolons.
    "insert" -> Insert semicolons at statement ends.
    "remove" -> Remove unnecessary semicolons.

到目前为止,似乎还没有解决上述问题的选项,对于我来说,当使用 log 又名 console.log() 的自动完成功能时,它确实在行尾。