在Typescript中使用引号的标准是什么?

时间:2014-08-22 19:00:26

标签: typescript tslint

我在申请中注意到TsLint建议:

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

对于上述内容:

Message 2   TsLint: ' should be "

这是一个适用于Typescript的建议标准吗?

7 个答案:

答案 0 :(得分:38)

这是我谷歌搜索的第一个结果:"双引号和单引号打字稿。"

考虑到已接受的答案有点旧(但仍然有效,请参阅文档)我想在2015年11月27日更新此引文:https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

  

对字符串使用双引号。

授予"代码更符合您的要求'指南'而不是实际的规则。" :)

答案 1 :(得分:27)

我会选择单引号。我非常赞同this guy

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

原因:更多JavaScript小组执行此操作(例如airbnb,标准,npmnodegoogle/angularfacebook/react)。它更容易打字(大多数键盘都不需要换档)。 Prettier team recommends single quotes as well

此外,即使是dotnet new模板,也会为Angular应用使用单引号。

答案 2 :(得分:11)

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

来自docs

  

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

答案 3 :(得分:10)

由@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演示都使用单引号。

答案 4 :(得分:1)

如果您要嵌入模板字符串,请打勾:

`

直接从here

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

我个人更喜欢单引号,因为在处理空字符串常量时,''""的眼球混乱程度要小一些。

但是,如果需要嵌入单引号,可以覆盖该规则。使用双引号将内容包装起来,以免造成麻烦。

灵活性是关键。

答案 5 :(得分:1)

由于似乎没有一成不变的答案,因此跨语言的一致性是什么?

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

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

Python / Javascript :没什么区别。如果字符串需要包含“,则可以用'分隔,反之亦然。

JSON :仅双引号。这是一个引人入胜的论点。

在所有语言中,单引号表示缺少转义序列和内插。

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

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

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

注意:我不是JSON的拥护者,这几天似乎不可避免;)

答案 6 :(得分:1)

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

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

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

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