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 tag
single
"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 substitution
backticks
"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 names
avoidEscape
"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
セレクターをターゲットにします。
使用しない場合
文字列スタイルに一貫性が必要ない場合は、このルールを安全に無効にできます。