81

我在我的应用程序中注意到 TsLint 建议:

static $inject = [
        '$http',
        '$q',
        '$scope',
        'configService',
        'stateService',
        'utilityService'
    ];

对于上述情况:

Message 2   TsLint: ' should be "

这是 Typescript 现在的建议标准吗?

4

7 回答 7

59

这是我在谷歌搜索的第一个结果:“双引号与单引号打字稿”。

考虑到接受的答案有点旧(但从文档中仍然有效),我想添加以下引用: https ://github.com/Microsoft/TypeScript/wiki/Coding-guidelines ,于 2015 年 11 月 27 日更新:

对字符串使用双引号。

当然,“代码更像是你所说的‘指导方针’,而不是实际规则。” :)

于 2016-03-01T16:47:53.140 回答
40

我会用单引号。我非常同意这个人

  • 除非转义,否则首选单引号 (')。

原因:更多的 JavaScript 团队这样做(例如airbnb、standard、npmnodegoogle/angularfacebook/react)。它更容易打字(大多数键盘不需要移位)。 

Prettier 团队推荐——单引号也是 双引号

此外,即使是dotnet new模板也对 Angular 应用程序使用单引号。

于 2017-04-28T22:44:33.493 回答
25

对字符使用单引号,对字符串使用双引号没有特定的标准,但建议对字符串使用双引号,反之亦然。

文档

就像 JavaScript 一样,TypeScript 也使用双引号 (") 或单引号 (') 来包围字符串数据。

于 2014-08-22T19:02:01.677 回答
16

@crowebird 链接的编码标准文档是一个很好的文档:https ://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

我喜欢除了双引号之外的所有指南——在使用带有 Angular 2 的打字稿时。

这个问题与 Angular 2 的 Typescript 无关,但读者可能是 Angular 2 用户。在打字稿中标记 html 字符串时,使用单引号更容易阅读。

举个例子:

@Component({
    ...,
    template: '<div class="some-class-name"></div>'
})

但是,如果您使用双引号,则必须转义双引号:

@Component({
    ...,
    template: "<div class=\"some-class-name\"></div>"
})

第一个选项更可取。大多数 Angular 2 演示使用单引号。

于 2016-11-27T04:17:12.590 回答
7

既然似乎没有硬性和快速的答案,那么跨语言的一致性是什么?

Bash/Powershell/Ruby : " 启用插值和转义序列。' 表示字符串与输入的完全相同。

C 风格的语言(Java、C#、C++ 等):" 是字符串,而 ' 表示单个字符。

Python/Javascript:没有区别。如果一个字符串需要包含 ",你可以用 ' 来分隔它,反之亦然。

JSON:仅双引号。这是倾斜的论点。

跨语言,单引号意味着缺少转义序列和插值。

Typescript 对 ` (反引号)字符串具有向后兼容性,因此我的偏好是对非转义字符串使用 " (双引号),通常没有空格并使用以下字符集:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-[\w\d-]*在许多正则表达式方言中。这意味着您可以将 Pasta 对象文字复制到 JSON 中,反之亦然。在实践中对于很少的调查、测试等非常有用。

对于其他所有内容,`(反引号)因为它减少了转义序列并启用了插值

注意:我不是 JSON 的拥护者,现在看来它是不可避免的 ;)

于 2019-04-10T01:59:27.623 回答
3

如果您要嵌入模板字符串,则反引号:

`

直接从这里

const lyrics = 'Never gonna give you up';
const html = `<div>${lyrics}</div>`;

我个人更喜欢单引号,因为''vs""在处理空字符串常量时对眼球的混淆程度稍低。

但如果您需要嵌入单引号,则可以覆盖该规则。使用双引号来包装事物以避免逃避头痛。

灵活性是关键。

于 2019-02-19T09:27:59.700 回答
0

找到您的 tslint.json 文件并更改以下 json 设置

"quotemark": [
      [
        true,
        "double"
      ],
      [
        true,
        "single"
      ]
    ],

这允许在您的 ts 文件中使用单引号和双引号。

使用 Visual Studio 时,可能需要重新启动 Visual Studio。

于 2020-05-01T15:06:40.237 回答