コンテンツへスキップ

@stylistic/js/

quotes

JavaScriptでは、ダブルクォート、シングルクォート、バッククォート(ECMAScript 6以降)の3つの方法で文字列を定義できます。例えば

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/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"オプションを使用したこのルールの正しいコードの例

js
/*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"オプションを使用したこのルールの不正なコードの例

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

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

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

js
/*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"オプションを使用したこのルールの不正なコードの例

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

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

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

js
/*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 }オプションを使用したこのルールの追加の正しいコードの例

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

var single = 'a string containing "double" quotes';
正しい

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

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

var double = "a string containing 'single' quotes";
正しい

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

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

var double = "a string containing `backtick` quotes"
正しい

allowTemplateLiterals

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

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

var double = "double";
var double = `double`;
正しい

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

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

var single = 'single';
var single = `single`;
正しい

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

使用しない場合

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

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