quotes
JavaScriptでは、ダブルクォート、シングルクォート、バッククォート(ECMAScript 6以降)の3つの方法で文字列を定義できます。例えば
/*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"オプションを使用したこのルールの不正なコードの例
/*eslint @stylistic/js/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デフォルトの"double"オプションを使用したこのルールの正しいコードの例
/*eslint @stylistic/js/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 tagsingle
"single"オプションを使用したこのルールの不正なコードの例
/*eslint @stylistic/js/quotes: ["error", "single"]*/
var double = "double";
var unescaped = "a string containing 'single' quotes";"single"オプションを使用したこのルールの正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "single"]*/
/*eslint-env es6*/
var single = 'single';
var backtick = `back${x}tick`; // backticks are allowed due to substitutionbackticks
"backtick"オプションを使用したこのルールの不正なコードの例
/*eslint @stylistic/js/quotes: ["error", "backtick"]*/
var single = 'single';
var double = "double";
var unescaped = 'a string containing `backticks`';"backtick"オプションを使用したこのルールの正しいコードの例
/*eslint @stylistic/js/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 namesavoidEscape
"double", { "avoidEscape": true }オプションを使用したこのルールの追加の正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "double", { "avoidEscape": true }]*/
var single = 'a string containing "double" quotes';"single", { "avoidEscape": true }オプションを使用したこのルールの追加の正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "single", { "avoidEscape": true }]*/
var double = "a string containing 'single' quotes";"backtick", { "avoidEscape": true }オプションを使用したこのルールの追加の正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "backtick", { "avoidEscape": true }]*/
var double = "a string containing `backtick` quotes"allowTemplateLiterals
"double", { "allowTemplateLiterals": true }オプションを使用したこのルールの追加の正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "double", { "allowTemplateLiterals": true }]*/
var double = "double";
var double = `double`;"single", { "allowTemplateLiterals": true }オプションを使用したこのルールの追加の正しいコードの例
/*eslint @stylistic/js/quotes: ["error", "single", { "allowTemplateLiterals": true }]*/
var single = 'single';
var single = `single`;{ "allowTemplateLiterals": false }は、すべてのテンプレートリテラルの使用を禁止するわけではありません。テンプレートリテラルのすべてのインスタンスを禁止する場合は、no-restricted-syntaxを使用して、TemplateLiteralセレクターをターゲットにします。
使用しない場合
文字列スタイルに一貫性が必要ない場合は、このルールを安全に無効にできます。