Visual Studio代码-调整导入报价设置


85

在Visual Studio Code中的TypeScript中工作时,对类型的导入建议(按空格+句点触发)将使用双引号生成导入。

我们的TypeScript linter验证在可能的情况下使用单引号。

如您在下面看到的,该建议带有双引号(“ @angular / ...”) 导入带双引号的建议

如何调整导入设置?


Answers:


85

从VSCode 1.10开始,这是(非常)不可能的。但这似乎对大多数用户来说是个问题。VSCode主题已意识到此问题,您可以按照以下步骤了解何时实现:https : //github.com/Microsoft/TypeScript/issues/13270


2018年6月更新

自VSCode 1.24(2018年6月)以来,对此有一个选择!

"typescript.preferences.quoteStyle": "single"

有关更多信息,请参见:

https://code.visualstudio.com/updates/v1_24#_preferences-for-auto-imports-and-generated-code


22
"typescript.preferences.quoteStyle": "single"
Niko

7
这似乎对我没有生效。我仍然从建议和摘要中得到双引号。
约翰·努普

我也一样,在所有可能的级别(用户,工作空间,项目)上都进行了更改,但仍然带有双引号:(
Kostanos

我不知道你们两个使用的是哪种语言,但是javascript和打字稿有单独的设置。我想知道同样的事情,但是我设置了javascript代码设置而不是打字稿。
GhostBytes

53

您还可以在vscode用户设置中配置以下行以调整此设置。

"prettier.singleQuote": true

3
漂亮是一个扩展,并非所有人都使用它
caub 19/09/10

1
令人沮丧的是人们认为您拥有或想要使用Prettier。除非有人问“我如何使用更漂亮”,否则我认为最好不要假设他们有它。
沙皇炸弹

@TsarBomba你是对的。此设置需要更漂亮的扩展名才能调整报价。marketplace.visualstudio.com/…–
abdllhbyrktr

15

我修复了使用Editor config的问题,在项目根目录中打开.editorconfig文件(如果没有,请创建该文件),并在[*]之后添加此行

[*]
...
quote_type = single

Wiki中,您可以看到属性的完整列表。


已投票。仅将更改限制为您正在处理的项目还是全局的项目。附加说明:重新启动VS Code以使更改生效。
EdSF

仅作评论,在VS Code中,您还可以设置特定于该项目的工作区设置。如果要在文件中的其他位置使用其他类型,则将允许您在导入时特别使用单引号/双引号。.editorconfig更改将在整个项目范围内进行。
Cruril

12

从VS Code 1.21.1开始,您需要进行编辑

/usr/share/code/resources/app/extensions/typescript-basics/snippets/typescript.json

在Windows中

/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/snippets/typescript.json

在Windows 10(vscode版本1.30。*(用户设置)之后)中

* C:\ Users \ <您的用户名> \ AppData \ Local \ Programs \ Microsoft VS Code \ resources \ app \ extensions \ typescript-basics \ snippets \ typescript.json

在该文件的“导入外部模块”部分中,将主体数组属性设置为值。"import { $0 } from '${1:module}';"该部分将如下所示:

"Import external module.": {
    "prefix": "import statement",
    "body": [
        "import { $0 } from '${1:module}';"
    ],
    "description": "Import external module."
},

1
这个解决方案对我有用。从字面上看,所有尝试,但只有此固定。
索萨

8

支持此配置的替代方法是TypeScript Toolbox

可以通过设置进行配置,genGetSet.pathStringDelimiter默认情况下已将单引号导入。


2
谢谢你!值得指出的是genGetSet.spacedImportLine设置,因此新的导入行看起来像是import { Router }....默认行import {Router}...
FLGMwt

1
上面的答案和评论都是很好的信息!谢谢你们两个!
克里斯·博伊德

7

转到“文件>首选项>设置”,然后将其添加到用户设置下:

"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"

为我工作,谢谢!顺便说一句,您可以添加一个链接到提供这些选项的默认设置:code.visualstudio.com/docs/getstarted/settings// Preferred quote style to use for quick fixes: 'single' quotes, 'double' quotes, or 'auto' infer quote type from existing imports. Requires using TypeScript 2.9 or newer in the workspace.
Mosh Feu


2

您还可以在vscode用户设置中配置以下行,以允许在字符串中使用单引号。

转到首选项>用户设置

"prettier.singleQuote": true

这将允许在字符串中使用单引号。否则,如果您手动将所有双引号更改为单引号,它将在保存时还原。另外,添加

"tslint.autoFixOnSave": true

保存时自动修复。


1

这已经实现(如另一个答复中所述)!但是您可能尚未使用最新版本的TypeScript。

解决方法很简单:

单击“ TypeScript”和右下角的笑脸之间的TypeScript版本号(例如2.3.4)。然后切换到Visual Studio Code内置版本(目前为2.5.3)。

此Visual Studio代码之后,将通过查看第一个导入语句推断导入引用样式。请注意,一个小的弹出标签仍将显示双引号。

错误报告

相关拉取要求

这增加了确定通过代码修复添加的新导入是使用单引号还是双引号的功能。添加新导入后,我们将使用模块说明符扫描源文件的最顶层语句,以查找现有的导入或导出声明。然后,我们使用找到的第一个引用样式。如果文件中没有现有的导入,我们将退回到使用双引号。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.