我在申请中注意到TsLint建议:
static $inject = [
'$http',
'$q',
'$scope',
'configService',
'stateService',
'utilityService'
];
对于上述内容:
Message 2 TsLint: ' should be "
这是一个适用于Typescript的建议标准吗?
答案 0 :(得分:38)
这是我谷歌搜索的第一个结果:"双引号和单引号打字稿。"
考虑到已接受的答案有点旧(但仍然有效,请参阅文档)我想在2015年11月27日更新此引文:https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines:
对字符串使用双引号。
授予"代码更符合您的要求'指南'而不是实际的规则。" :)
答案 1 :(得分:27)
我会选择单引号。我非常赞同this guy:
- 首选单引号('),除非转义。
原因:更多JavaScript小组执行此操作(例如airbnb,标准,npm,node,google/angular,facebook/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。