【发布时间】:2017-08-14 14:45:18
【问题描述】:
在 Visual Studio Code 中使用 TypeScript 时,对类型的导入建议(由空格 + 句点触发)将使用双引号生成导入。
我们的 TypeScript linter 会验证是否在可能的情况下使用了单引号。
如下所示,该建议带有双引号 ("@angular/...")
如何调整导入的设置?
【问题讨论】:
标签: typescript visual-studio-code
在 Visual Studio Code 中使用 TypeScript 时,对类型的导入建议(由空格 + 句点触发)将使用双引号生成导入。
我们的 TypeScript linter 会验证是否在可能的情况下使用了单引号。
如下所示,该建议带有双引号 ("@angular/...")
如何调整导入的设置?
【问题讨论】:
标签: typescript visual-studio-code
从 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
【讨论】:
"typescript.preferences.quoteStyle": "single"
您还可以在 vscode 用户设置中配置以下行来调整此设置。
"prettier.singleQuote": true
【讨论】:
我使用Editor config 修复了这个问题,在您的项目根目录中打开您的 .editorconfig 文件(如果没有,请创建该文件)并在 [ 之后添加这一行*]
[*]
...
quote_type = single
在wiki 中,您可以看到完整的属性列表。
【讨论】:
从 VS Code 1.21.1 开始,您需要编辑
/usr/share/code/resources/app/extensions/typescript-basics/sn-ps/typescript.json
在 Windows 中
/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/sn-ps/typescript.json。
在 Windows 10 中(vscode 版本 1.30.*(用户设置)更高版本)
*C:\Users\\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\typescript-basics\sn-ps\typescript.json
在该文件的“导入外部模块”部分中,将 body 数组属性设置为值 "import { $0 } from '${1:module}';" 该部分将如下所示:
"Import external module.": {
"prefix": "import statement",
"body": [
"import { $0 } from '${1:module}';"
],
"description": "Import external module."
},
【讨论】:
支持此配置的替代方法是TypeScript Toolbox。
可通过设置genGetSet.pathStringDelimiter 进行配置,默认情况下已经具有单引号导入。
【讨论】:
genGetSet.spacedImportLine 设置以及新的导入行看起来像 import { Router }.... 而不是默认的 import {Router}...
转到“文件>首选项>设置”,然后在用户设置下添加:
"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single"
【讨论】:
// 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.
从 TypeScript 2.5 开始,将扫描文件中的第一个导入或导出语句,以确定在使用导入建议时是使用单引号还是双引号。
【讨论】:
您还可以在 vscode 用户设置中配置以下行以允许在字符串中使用单引号。
转到首选项>用户设置
"prettier.singleQuote": true
这将允许在字符串中使用单引号。否则,如果您手动将所有双引号更改为单引号,它将在保存时恢复。另外,添加
"tslint.autoFixOnSave": true
在保存时自动修复。
【讨论】:
这已经实现(正如另一个回复中提到的)!但是你可能还没有使用最新版本的 TypeScript。
解决方法很简单:
点击右下角“TypeScript”和小笑脸之间的TypeScript版本号(例如2.3.4)。然后切换到 Visual Studio Code 内置版本(此时为 2.5.3)。
在此之后,Visual Studio 代码将通过查看第一个导入语句来推断导入引用样式。请注意,无论如何,一个小的弹出标签仍会显示双引号。
这增加了确定是否对通过代码修复添加的新导入使用单引号或双引号的能力。添加新导入时,我们会扫描源文件的最顶层语句以查找带有模块说明符的现有导入或导出声明。然后我们使用我们找到的第一个引用样式。如果文件中没有现有的导入,我们将使用双引号。
【讨论】:
以上解决方案对我不起作用
所以这是我的解决方法,在你使用 vscode 时,"tslint.autoFixOnSave": true 在你的settings.json 中会在你保存文件时自动修复这些导入引用。
【讨论】:
Unknown Configuration Setting