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