コンテンツへスキップ

@stylistic/

quotes

JavaScriptでは、文字列を3つの方法で定義できます。二重引用符、単一引用符、バックティック(ECMAScript 6以降)。例:

js
/*eslint-env es6*/

var double = "double";
var single = 'single';
var backtick = `backtick`;    // ES6 only

これらの行はそれぞれ文字列を作成し、場合によっては互換的に使用できます。コードベースで文字列を定義する方法の選択は、テンプレートリテラル(埋め込み式を解釈できる)以外のスタイル上の問題です。

多くのコードベースでは、文字列を統一した方法で定義する必要があります。

ルール詳細

このルールは、バックティック、二重引用符、または単一引用符の一貫した使用を強制します。

このルールは、「"use strict"」などのディレクティブプロローグを認識し、ディレクティブプロローグの解釈方法を変更する場合は、それらをフラグ付けまたは自動修正しません。

オプション

このルールには、文字列オプションとオブジェクトオプションの2つのオプションがあります。

文字列オプション

  • "double"(デフォルト)は、可能な限り二重引用符を使用することを要求します。
  • "single"は、可能な限り単一引用符を使用することを要求します。
  • "backtick"は、可能な限りバックティックを使用することを要求します。

オブジェクトオプション

  • "avoidEscape": true は、文字列にそうでなければエスケープする必要がある引用符が含まれている限り、文字列がシングルクォート、ダブルクォート、またはテンプレートリテラルを使用することを許可します。
  • "allowTemplateLiterals": true は、文字列がバックティックを使用することを許可します。
  • "ignoreStringLiterals": true は、文字列リテラルではなく、テンプレート文字列のみを報告しません。

**非推奨**: オブジェクトプロパティavoid-escapeは非推奨です。代わりにオブジェクトプロパティavoidEscapeを使用してください。

double

デフォルトの"double"オプションを使用したこのルールに関する**不正な**コードの例

js
/*eslint @stylistic/quotes: ["error", "double"]*/

var single = 
'single'
;
var unescaped =
'a string containing "double" quotes'
;
var backtick =
`back\ntick`
; // you can use \n in single or double quoted strings
incorrect

デフォルトの"double"オプションを使用したこのルールに関する**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "double"]*/
/*eslint-env es6*/

var double = "double";
var backtick = `back
tick`;  // backticks are allowed due to newline
var backtick = tag`backtick`; // backticks are allowed due to tag
correct

single

"single"オプションを使用したこのルールに関する**不正な**コードの例

js
/*eslint @stylistic/quotes: ["error", "single"]*/

var double = 
"double"
;
var unescaped =
"a string containing 'single' quotes"
;
incorrect

"single"オプションを使用したこのルールに関する**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "single"]*/
/*eslint-env es6*/

var single = 'single';
var backtick = `back${x}tick`; // backticks are allowed due to substitution
correct

バックティック

"backtick"オプションを使用したこのルールに関する**不正な**コードの例

js
/*eslint @stylistic/quotes: ["error", "backtick"]*/

var single = 
'single'
;
var double =
"double"
;
var unescaped =
'a string containing `backticks`'
;
incorrect

"backtick"オプションを使用したこのルールに関する**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "backtick"]*/
/*eslint-env es6*/

"use strict"; // directives must use single or double quotes
var backtick = `backtick`;
var obj = { 'prop-name': `value` }; // backticks not allowed for property names
correct

avoidEscape

"double", { "avoidEscape": true }オプションを使用したこのルールに関する追加の**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "double", { "avoidEscape": true }]*/

var single = 'a string containing "double" quotes';
correct

"single", { "avoidEscape": true }オプションを使用したこのルールに関する追加の**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "single", { "avoidEscape": true }]*/

var double = "a string containing 'single' quotes";
correct

"backtick", { "avoidEscape": true }オプションを使用したこのルールに関する追加の**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "backtick", { "avoidEscape": true }]*/

var double = "a string containing `backtick` quotes"
correct

allowTemplateLiterals

"double", { "allowTemplateLiterals": true }オプションを使用したこのルールに関する追加の**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "double", { "allowTemplateLiterals": true }]*/

var double = "double";
var double = `double`;
correct

"single", { "allowTemplateLiterals": true }オプションを使用したこのルールに関する追加の**正しい**コードの例

js
/*eslint @stylistic/quotes: ["error", "single", { "allowTemplateLiterals": true }]*/

var single = 'single';
var single = `single`;
correct

{ "allowTemplateLiterals": false }は、すべてのテンプレートリテラルの使用を禁止しません。テンプレートリテラルのインスタンスを禁止する場合は、no-restricted-syntaxを使用し、TemplateLiteralセレクターをターゲットにします。

使用しない場合

文字列スタイルに一貫性が必要ない場合は、このルールを安全に無効にできます。

TypeScript固有

ts/quotes

MITライセンスの下でリリースされています。