blog

ESLintルールの説明

// = { // ES6の解析 'parser': 'babel-eslint'、 '': { // ES を有効化...

May 6, 2020 · 16 min. read
// .eslintrc.js
module.exports = {
 // ES6の説明
 'parser': 'babel-eslint',
 'parserOptions': {
 // ES8構文のサポートを有効にする
 'ecmaVersion': 2017, 
 // moduleECMAScriptモジュールを示す
 'sourceType': 'module',
 // 追加言語機能の使用
 'ecmaFeatures': {
 'experimentalObjectRestSpread': true,
 'jsx': true,
 'modules': true,
 }
 },
 // これらの環境は互いに排他的なものではないので、一度に複数の環境を定義することができる。
 'env': {
 'browser': true,
 'jquery': true,
 'node': true,
 'commonjs': true,
 'es6': true,
 },
 'root': true,
 // no-undefルールは、現在のソース・ファイルで定義されていない変数にアクセスする際に警告を発する。
 // そのため、以下のグローバル変数を定義する必要がある。
 'globals': {
 'OnlySVG': true,
 'monitor': true,
 'CanvasRender': true,
 'Vue': true,
 'VueRouter': true
 },
 'rules': {
 // セッターを設定したら、それに応じてゲッターも設定しなければならない。
 'accessor-pairs': 2,
 
 // 配列で角括弧の前後に改行を使用する際のルール
 // @off  
 'array-bracket-newline': 0,
 
 // 配列で角括弧の前後にスペースを使用する際のルール
 // @off  
 'array-bracket-spacing': 0,
 
 // 配列のmap、filter、sortなどのメソッドとコールバック関数は、返り値を持たなければならない。
 'array-callback-return': 2,
 
 // 配列の各項目が別々の行にあるかどうか
 // @off  
 'array-element-newline': 0,
 
 // 矢印関数の書き方のルール
 // @off  
 'arrow-body-style': 0,
 
 // 矢印関数で括弧を使用する際のルール
 // @off  
 'arrow-parens': 0,
 
 // アロー関数でスペースを使用する際のルール
 // @off  
 'arrow-spacing': 0,
 
 // ブロック外のブロックスコープでvar定義変数を使うことはできない。
 'block-scoped-var': 2,
 
 // コードブロックの中括弧の前後のスペースに関する規則
 // @off  
 'block-spacing': 0,
 
 // if else ...の括弧付き改行ルール
 // @off  
 'brace-style': 0,
 
 // callback の直後に返さなければならない。
 // @off 不必要
 'callback-return': 0,
 
 // 変数名はキャメルケースでなければならない
 // @off 当面は制限なし
 'camelcase': 0,
 
 // 注釈の最初の文字は大文字とする。
 // @off 不必要
 'capitalized-comments': 0,
 
 // class は thisキーワードを含んでいなければならない。
 'class-methods-use-this': 2,
 
 // オブジェクトの最後の項目の後にカンマを書くかどうか
 // @off この項目は気にする必要はない
 // @fixable 互換性が懸念されるPCプロジェクトでは、次のように設定する必要がある。
 'comma-dangle': 0,
 
 // コンマの前後にスペースがあるかどうか
 // @off  
 'comma-spacing': 0,
 
 // 行頭または行末のカンマ
 // @off  
 'comma-style': 0,
 
 // 以下の場合、この機能を無効にする。... else if ... else システムの複雑さは20%を超えている。
 'complexity': 2,
 
 // 角括弧を使用してオブジェクト・プロパティにアクセスする際の、角括弧の前後のスペースに関する規則
 // @off  
 'computed-property-spacing': 0,
 
 // 関数が異なる条件下で異なるタイプの値を返すことを禁止する。
 // @off 時には、パラメータを通して別のタイプの戻り値を得たいこともある。
 'consistent-return': 0,
 
 // this エイリアシングのルールでは、selfかthatしか許されない。
 'consistent-this': [2, 'self', 'that'],
 
 // コンストラクタはスーパー
 // @off 不必要
 'constructor-super': 0,
 
 // if の後に続かなければならない。{ ,を除く場合は1行
 'curly': [2, 'multi-line', 'consistent'],
 
 // switch ステートメントには、デフォルトの
 'default-case': 2,
 
 // チェインする際のドットの位置。前の行の終わりか、次の行の始まりか。
 // @off  
 'dot-location': 0,
 
 // ファイルの最後には空白行が必要である。
 // @off  
 'eol-last': 0,
 
 // を使用しなければならない。===  !== ,ヌルと比較した場合を除く
 'eqeqeq': [2, 'always', { 'null': 'ignore' }],
 
 // for ループの方向を間違えて、デッドループを引き起こしてはならない。
 'for-direction': 2,
 
 // 関数を実行する際の括弧の前後のスペースに関する規則
 // @off  
 'func-call-spacing': 0,
 
 // 関数を変数やオブジェクト・プロパティに代入する場合、関数名と変数名やオブジェクト・プロパティ名は同じでなければならない。
 // @off  
 'func-name-matching': 0,
 
 // 匿名関数は使用できない
 // @off  
 'func-names': 0,
 
 // 関数宣言のみ、または関数式のみを使用しなければならない。
 // @off  
 'func-style': 0,
 
 // generator  * 前後のスペースに関するルール
 // @off  
 'generator-star-spacing': 0,
 
 // getter 戻り値を持たなければならないが、undefinedは許される。
 'getter-return': [2, { allowImplicit: true }],
 
 // require グローバル・スコープでなければならない
 // @off 条件付きローディングが一般的
 'global-require': 0,
 
 // for in hasOwnPropertyをチェックしたい場合
 'guard-for-in': 2,
 
 // callback のerrとerrorのパラメータと変数である。
 'handle-callback-err': 2,
 
 // id  
 // @off まだだ。
 'id-blacklist': 0,
 
 // 変数名の長さの制限
 // @off 長さが重要なのではなく、明瞭さと読みやすさが重要なのだ。
 'id-length': 0,
 
 // 変数名が指定された正規表現にマッチするように制限する
 // @off 変数名を制限する必要はない
 'id-match': 0,
 
 // インデントのためのタブまたはスペース
 // @off  
 'indent': 0,
 
 // 変数は定義時に値を割り当てなければならない。
 // @off 定義に続いて割り当てが行われるのが一般的である。
 'init-declarations': 0,
 
 // jsx 属性の値は二重引用符で囲む必要がある。
 'jsx-quotes': [2, 'prefer-double'],
 
 // オブジェクト・リテラルでコロンの前後にスペースを使用する際のルール
 // @off  
 'key-spacing': 0,
 
 // キーワードの前後にはスペースを入れなければならない
 'keyword-spacing': 2,
 
 // 改行の使い方
 // @off  
 'linebreak-style': 0,
 
 // 1行コメントを前の行に書くか、行末に書くか。
 // @off  
 'line-comment-position': 0,
 
 // コメントの前後に空白行を残すかどうか
 // @off  
 'lines-around-comment': 0,
 
 // ブロックの最大ネスティング深さは5レベル
 'max-depth': [2, 5],
 
 // コード1行の長さを制限する
 // @off  
 'max-len': 0,
 
 // 1ファイルの最大行数を制限する
 // @off  
 'max-lines': 0,
 
 // コールバックの最大深度は3層
 'max-nested-callbacks': [2, 3],
 
 // 関数は8つ以上の正式パラメータを持つことはできない
 'max-params': [2, 8],
 
 // 行内のステートメント数を制限する
 // @off 規制は必要ない。
 'max-statements-per-line': 0,
 
 // ファンクション・ブロック内のステートメント数を制限する
 // @off 規制は必要ない。
 'max-statements': 0,
 
 // 三項式の改行ルール
 // @off  
 'multiline-ternary': 0,
 
 // newクラスの名前は、キーワードの後に大文字で書く。
 'new-cap': [2, {
 'capIsNew': false, // 大文字で始まる関数を直接実行できるようにする
 }],
 
 // new クラスはキーワードの後に括弧を入れなければならない。
 'new-parens': 2,
 
 // 改行の有無にかかわらずコールを連結する
 // @off  
 'newline-per-chained-call': 0,
 
 // 開発者に削除を促すアラートを無効にする。
 'no-alert': 1,
 
 // Arrayコンストラクタの使用は禁止されており、長さnumの配列を直接作成するArrayの使用は許可されている。
 'no-array-constructor': 2,
 
 // ループ中のawaitを無効にする
 'no-await-in-loop': 2,
 
 // ビット演算を無効にする
 // @off  
 'no-bitwise': 0,
 
 // ノードの使用を禁止する.js Bufferコンストラクタは
 'no-buffer-constructor': 2,
 
 // 引数を無効にする.caller と引数.callee
 'no-caller': 2,
 
 // switchvar、let、const、function、classなどのキーワードが条件の中に出てくる場合は、その内容を中かっこで囲まなければならない。
 'no-case-declarations': 2,
 
 // catch定義された変数名は
 'no-catch-shadow': 2,
 
 // class定義されたクラス名は、他の変数と一緒にリネームしてはならない。
 'no-class-assign': 2,
 
 // 0との比較は禁止されている。
 'no-compare-neg-zero': 2,
 
 // if、for、whileの代入文は、括弧で囲まれない限り禁止されている。
 'no-cond-assign': [2, 'except-parens'],
 
 // 理解しにくい矢印関数は、括弧で囲まれていない限り禁止されている。
 'no-confusing-arrow': [2, { 'allowParens': true }],
 
 // コンソールを無効にし、本番稼動時に削除するよう開発者に注意を促す!
 'no-console': 1,
 
 // 判定条件として定数の使用を禁止する。
 'no-constant-condition': [2, { 'checkLoops': false }],
 
 // 定数定義の再割り当てを無効にする
 'no-const-assign': 2,
 
 // 続行禁止
 // @off  
 'no-continue': 0,
 
 // 正規表現におけるCtrlキーのASCII表現を無効にする。\x1f/
 'no-control-regex': 2,
 
 // デバッガーステートメントを無効にすると、開発者は本稼働して削除するよう促される。
 'no-debugger': 1,
 
 // 変数に対するdeleteキーワードの使用を禁止し、オブジェクトのプロパティを無制限に削除する。
 'no-delete-var': 2,
 
 // 正規表現をlet aのような分割演算子で始めることは禁じられている。= /=foo/
 // @off コードハイライトを使えば、この種のコードを読むときのあいまいさやわかりにくさはまったくない。
 'no-div-regex': 0,
 
 // 関数のパラメータ名は変更できない
 'no-dupe-args': 2,
 
 // オブジェクトがリネームされたキーや値を持つことを禁止する
 'no-dupe-keys': 2,
 
 // クラスメソッドは名前の変更を無効にする
 'no-dupe-class-members': 2,
 
 // 同じケースがスイッチに現れることを禁止する
 'no-duplicate-case': 2,
 
 // 重複インポートの禁止
 'no-duplicate-imports': 2,
 
 // 以下の場合は発生を禁止する。{ return a } else { return b },と書くべきである。{ return a } return b
 // @off 前者の書き方の方が明確で理解しやすいこともある。
 'no-else-return': 0,
 
 // 正規表現における空文字セットの禁止[]
 'no-empty-character-class': 2,
 
 // 空の機能を無効にする
 // コメントを入れることで
 'no-empty-function': 2,
 
 // 解体における無効の禁止{}  []
 'no-empty-pattern': 2,
 
 // 空のコードブロックの禁止
 'no-empty': [2, { 'allowEmptyCatch': true }],
 
 //  ==  != NULLと比較するには===  !==
 // @off 非厳密な等号は、nullとundefinedの両方を決定するために使用できる。
 'no-eq-null': 0,
 
 // evalを無効にする
 'no-eval': 2,
 
 // catch 定義されたパラメータの割り当ては禁止されている
 'no-ex-assign': 2,
 
 // ネイティブ・オブジェクトの拡張を無効にする
 'no-extend-native': [2, { 'exceptions': ['Array', 'Object'] }],
 
 // 追加バインドを無効にする
 'no-extra-bind': 2,
 
 // 追加のブーリアン変換を禁止する
 'no-extra-boolean-cast': 2,
 
 // 追加ラベルの禁止
 'no-extra-label': 2,
 
 // 関数本体のみ、余分な括弧を無効にする
 'no-extra-parens': [2, 'functions'],
 
 // セミコロンの追加禁止
 'no-extra-semi': 2,
 
 // スイッチのすべてのケースには、ブレーク、リターン、スローが必要だ。
 // コメントを入れることで
 'no-fallthrough': [2, { 'commentPattern': '.' }],
 
 // 使用不可 2.  .5 を使う必要がある。.0.5  
 'no-floating-decimal': 2,
 
 // 関数宣言の再割り当てを無効にする
 'no-func-assign': 2,
 
 // グローバル変数への値の割り当てを無効にする
 'no-global-assign': 2,
 
 // 暗黙の型変換の使用を禁止する
 'no-implicit-coercion': [2, {
 'allow': ['+', '!!'] //  + 変換値 ''+ 文字列変換と!! ブーリアン
 }],
 
 // setTimeoutとsetIntervalに文字列を渡すことは、暗黙のevalを引き起こすため禁止されている。
 'no-implied-eval': 2,
 
 // グローバル変数の暗黙の定義を無効にする
 'no-implicit-globals': 2,
 
 // インラインコメントを無効にする
 // @off  
 'no-inline-comments': 0,
 
 // ブロックスコープでのvar宣言や関数宣言の使用を禁止する。
 'no-inner-declarations': [2, 'both'],
 
 // 不正な正規表現の禁止
 'no-invalid-regexp': 2,
 
 // 授業以外でのthisの使用禁止
 // @off this イベント・コールバックは現在の要素を表すことができ、関数は thisで始まり、呼び出されたときに後で呼び出すことができる。
 'no-invalid-this': 0,
 
 // 不規則なスペースの使用禁止
 'no-irregular-whitespace': [2, {
 'skipStrings': true, // の使用を許可する。
 'skipComments': true, // コメントで許可される
 'skipRegExps': true, // の使用を許可する。
 'skipTemplates': true, // テンプレート文字列で許可される
 }],
 
 // 使用禁止__iterator__
 'no-iterator': 2,
 
 // label 定義された変数にリネームしてはならない。
 'no-label-var': 2,
 
 // ラベルの使用を禁止する
 // @off これを無効にすると、複数のループや複数のスイッチを壊すことが難しくなる。
 'no-labels': 0,
 
 // 無効なブロックスコープを無効にする
 'no-lone-blocks': 2,
 
 // elseのifは1つだけである。
 // @off それだけでも論理が明確になる。
 'no-lonely-if': 0,
 
 // 禁止事項{ function() { use i } },letを使えば、次のことができる。
 'no-loop-func': 2,
 
 // マジックナンバーの禁止
 'no-magic-numbers': 0,
 
 // 混合論理判定は禁止されており、異なる論理は括弧で括らなければならない。
 'no-mixed-operators': [2, {
 "groups": [
 ["&&", "||"]
 ]
 }],
 
 // 同じタイプの要件は、一緒に配置されなければならない
 // @off  
 'no-mixed-requires': 0,
 
 // インデントにスペースやタブを使用することは禁止されており、標準化されなければならない。
 'no-mixed-spaces-and-tabs': 2,
 
 // 連結代入の禁止
 'no-multi-assign': 2,
 
 // 連続スペースの禁止
 'no-multi-spaces': 2,
 
 // 使用禁止\ 複数行の文字列を定義するために、一律にテンプレート文字列を使用する。
 'no-multi-str': 2,
 
 // 連続空白行数の制限
 'no-multiple-empty-lines': [2, {
 max: 3, // 最大3枚の連続書類
 maxEOF: 1, // 連続1回まで
 maxBOF: 1 // 連続1ヘッダーまで
 }],
 
 // ifの否定表現を無効にする!==
 // @off 否定的な表現は、論理をより明確にすることができる。
 'no-negated-condition': 0,
 
 // 入れ子の3項式は禁止されている
 // @off 規制は必要ない
 'no-nested-ternary': 0,
 
 // 新規」機能を禁止する
 // @off 非標準のJSONデータを解析するために使われることもある。
 'no-new-func': 0,
 
 // 新しい」オブジェクトの使用禁止
 'no-new-object': 2,
 
 // 新しい」要求の使用を禁止する
 'no-new-require': 2,
 
 // 新」シンボルの使用禁止
 'no-new-symbol': 2,
 
 // ブール値、数値、文字列の newを禁止する。
 'no-new-wrappers': 2,
 
 // インスタンスを保存せずにクラスの newを無効にする。
 'no-new': 2,
 
 // ネイティブ・オブジェクトであるMath、JSON、Reflectを関数として使用することを禁止する。
 'no-obj-calls': 2,
 
 // 8進数エスケープ文字の使用を禁止する
 'no-octal-escape': 2,
 
 // 8進数表現における0から始まる数字の使用禁止
 'no-octal': 2,
 
 // 使用禁止__dirname + 'file' をパスの形でスプライスする必要がある。.join またはパス.resolve  
 'no-path-concat': 2,
 
 // 関数の引数への値の再割り当てを無効にする。
 'no-param-reassign': 2,
 
 //  ++ そして
 // @off  
 'no-plusplus': 0,
 
 // プロセスを無効にする.env.NODE_ENV
 // @off 使用は一般的である
 'no-process-env': 0,
 
 // プロセスを無効にする.exit(0)
 // @off 使用は一般的である
 'no-process-exit': 0,
 
 // hasOwnProperty、isPrototypeOf、propertyIsEnumerableを無効にする。
 // @off ガードフォー・イン・ルールと矛盾し、不要である。
 'no-prototype-builtins': 0,
 
 // 使用禁止__proto__
 'no-proto': 2,
 
 // 重複申告の禁止
 'no-redeclare': 2,
 
 // 正規表現で連続したスペースを禁止する
 'no-regex-spaces': 2,
 
 // 特定のグローバル変数を無効にする
 // @off まだだ。
 'no-restricted-globals': 0,
 
 // 特定のモジュールのインポートを無効にする
 // @off まだだ。
 'no-restricted-imports': 0,
 
 // 特定のモジュールの使用を禁止する
 // @off まだだ。
 'no-restricted-modules': 'off',
 
 // 特定のオブジェクトのプロパティを無効にする
 // @off まだだ。
 'no-restricted-properties': 0,
 
 // 特定の構文の禁止
 // @off まだだ。
 'no-restricted-syntax': 0,
 
 // 見返りの譲渡の禁止
 'no-return-assign': 2,
 
 // リターン待ちを無効にする
 'no-return-await': 2,
 
 // 場所を無効にする.href = 'javascript:void'
 'no-script-url': 2,
 
 // 自分自身を自分自身に割り当てることは禁じられている。
 'no-self-assign': 2,
 
 // 自分と自分を比較することを禁止する
 'no-self-compare': 2,
 
 // カンマ演算子は禁止されている
 'no-sequences': 2,
 
 // 予約語を変数名として使用することを禁止する。
 'no-shadow-restricted-names': 2,
 
 // ネストされたスコープでの名前の変更された定義は禁止されている。; function b() { let a }
 'no-shadow': 2,
 
 // 配列内のカンマの連続を禁止する
 'no-sparse-arrays': 2,
 
 // fsのようなノードの同期メソッドの使用を無効にする。.readFileSync
 // @off 使用は一般的である
 'no-sync': 0,
 
 // タブを無効にする
 // @off  
 'no-tabs': 0,
 
 // 通常の文字列のテンプレート文字列構文を無効にする
 'no-template-curly-in-string': 2,
 
 // 三項表現の禁止
 // @off  
 'no-ternary': 0,
 
 // コンストラクタのスーパーで thisの使用を禁止する。
 'no-this-before-super': 2,
 
 // throwリテラルを無効にするには、Errorオブジェクトを投げなければならない。
 'no-throw-literal': 2,
 
 // 行末スペースの禁止
 'no-trailing-spaces': [2, {
 "skipBlankLines": true, // 空行をチェックしない
 "ignoreComments": true // コメントをチェックしない
 }],
 
 // 変数への未定義の代入を無効にする
 'no-undef-init': 2,
 
 // 未定義の変数やメソッドへのアクセスを禁止する
 'no-undef': 2,
 
 // undefinedの使用は禁止されている。 変数がundefinedかどうかを判断するには、typeof aを使用する。=== 'undefined'
 'no-undefined': 2,
 
 // 変数名にアンダースコアを使用することを禁止する。
 // @off 当面は制限なし
 'no-underscore-dangle': 0,
 
 // 理解しにくい複数行のコードの禁止
 'no-unexpected-multiline': 2,
 
 // ループ条件はループ内で変更しなければならない
 'no-unmodified-loop-condition': 2,
 
 // 不要な3項式を無効にする
 'no-unneeded-ternary': [2, { 'defaultAssignment': false }],
 
 // 到達不可能なコード、例えばreturnやthrowの後のコードを禁止する。
 'no-unreachable': 2,
 
 // 最終的なブロックでのリターン、スロー、ブレーク、コンティニューを禁止する。
 'no-unsafe-finally': 2,
 
 // 安全でない否定は禁止されている。!key in obj} {},と書くべきである。!(key in obj)} {}
 'no-unsafe-negation': 2,
 
 // 無駄な表現の禁止
 'no-unused-expressions': [2,
 {
 'allowShortCircuit': true, // の使用を許可する。|| b または&& b()
 'allowTernary': true, // 式で三項演算子を使えるようにする
 'allowTaggedTemplates': true, // テンプレート文字列のタグ付けを許可する
 }
 ],
 
 // 未使用ラベルの定義を無効にする
 'no-unused-labels': 2,
 
 // 使用されない変数の定義を禁止する
 'no-unused-vars': [2,
 {
 'vars': 'all', // 変数定義は必ず使用しなければならない
 'args': 'none', // 関数の正式なパラメータを検出しない
 'ignoreRestSiblings': true, // 残りの部分項は無視する fn(...args),{a, b, ...coords}
 'caughtErrors': 'none', // catch文の引数の使用を無視する
 }
 ],
 
 // 定義されている変数の使用を禁止する。
 'no-use-before-define': [2,
 {
 'functions': false, // 定義時に関数を呼び出せるようにする
 'classes': false, // 定義内でクラスを参照できるようにする
 }
 ],
 
 // 不要な通話を無効にして適用する
 'no-useless-call': 2,
 
 // var aのような不必要に計算されたキーの使用を禁止する。= { ['0']: 0 }
 'no-useless-computed-key': 2,
 
 // 不要な文字列のスプライシングを無効にする
 'no-useless-concat': 2,
 
 // 無駄なコンストラクタを無効にする
 'no-useless-constructor': 2,
 
 // 無駄な逃走を禁止する
 'no-useless-escape': 2,
 
 // 無効なリネームを無効にする。{a as a} from xxx
 'no-useless-rename': 2,
 
 // 不必要な返品の禁止
 // @off 規制は必要ない
 'no-useless-return': 0,
 
 // var は禁止されているので、let または const を使わなければならない。
 'no-var': 2,
 
 // ボイドの使用禁止
 'no-void': 2,
 
 // コメントでTODOやFIXMEを書くことを禁止し、開発者にTODOを書いたらそれを終わらせなければならないことを思い出させるために使う!
 'no-warning-comments': 1,
 
 // 属性の前のスペースを無効にする。. bar()
 'no-whitespace-before-property': 2,
 
 // で禁止されている。
 'no-with': 2,
 
 // 中括弧のないif文での改行を禁止する
 'nonblock-statement-body-position': 2,
 
 // オブジェクトを定義する括弧の前後に空行を追加するかどうか。
 // @off  
 'object-curly-newline': 0,
 
 // オブジェクトを定義する中括弧の前後にスペースを追加するかどうか。
 // @off  
 'object-curly-spacing': 0,
 
 // オブジェクトの各プロパティは、独立した行を持たなければならない。
 // @off  
 'object-property-newline': 0,
 
 // obj = { a: a } はobjに変換されなければならない。= { a }
 // @off 不必要
 'object-shorthand': 0,
 
 // 各変数宣言は別々の行でなければならない
 // @off ワンバーの場合、このルールは必要ない。
 'one-var-declaration-per-line': 0,
 
 // カンマを使って複数の変数を一度に宣言できるかどうか
 'one-var': [2, {
 'const': 'never' // すべてのconst宣言は1行でなければならない。
 }],
 
 // xを使わなければならない= x + y xの代わりに+= y
 // @off 規制は必要ない。
 'operator-assignment': 0,
 
 // 改行時、オペレータが行頭にいるか行末にいるか
 // @off  
 'operator-linebreak': 0,
 
 // コードブロックの最初と最後には空白行が必要である。
 // @off 規制は必要ない。
 'padded-blocks': 0,
 
 // ステートメントとステートメントの間の空白行に関する制限、例えば、変数が定義された後は空白でなければならない。
 // @off 規制は必要ない。
 'padding-line-between-statements': 0,
 
 // アロー関数はコールバックとして使用しなければならない
 // @off 不必要
 'prefer-arrow-callback': 0,
 
 // 宣言後に変更されない変数は、const を使用しなければならない。
 // @off 不必要
 'prefer-const': 0,
 
 // デコンストラクションを用いなければならない
 // @off 不必要
 'prefer-destructuring': 0,
 
 // parseInt('111110111')の代わりに0b11111011を使わなければならない。, 2)
 // @off 不必要
 'prefer-numeric-literals': 0,
 
 // promise はrejectのErrorオブジェクトとして渡されなければならず、リテラルは許されない。
 'prefer-promise-reject-errors': 2,
 
 // デコンストラクションを用いなければならない...args 引数の代わりに
 'prefer-rest-params': 2,
 
 // func()を使わなければならない。...args) の代わりに.apply(args)
 // @off 不必要
 'prefer-spread': 0,
 
 // 文字列スプライシングの代わりに、テンプレート文字列を使用しなければならない。
 // @off  
 'prefer-template': 0,
 
 // 文字列は一重引用符で囲む
 'quotes': [2, 'single', {
 'avoidEscape': true, // シングルクォートを含む文字列にダブルクォートを許可する
 'allowTemplateLiterals': true, // テンプレート文字列を許可する
 }],
 
 // オブジェクトリテラルのキー名は、カンマで囲むことはできない。
 // @off 規制は必要ない。
 'quote-props': 0,
 
 // parseIntメソッドには、入力パラメータ
 'radix': 2,
 
 // async await文は関数内に存在しなければならない。
 // @off async function コアのサンプルのように、アウェイトなしで書くことはよくあることだ。
 'require-await': 0,
 
 // jsdocスタイルのコメントを使用しなければならない
 // @off 当面はスイッチを入れることは考えていない
 'require-jsdoc': 0,
 
 // generator 関数は収量を持たなければならない。
 'require-yield': 2,
 
 // ...の後にスペースを入れることはできない。
 'rest-spread-spacing': [2, 'never'],
 
 // セミコロンの前後のスペースに関する規則
 // @off  
 'semi-spacing': 0,
 
 // 行頭のセミコロンの禁止
 'semi-style': [2, 'last'],
 
 // 行はセミコロンで終わらなければならない。
 'semi': 2,
 
 // imports 秩序がなければならない。
 // @off 規制は必要ない。
 'sort-imports': 0,
 
 // オブジェクト・リテラルのキー名は順番に並べなければならない。
 // @off 規制は必要ない。
 'sort-keys': 0,
 
 // 変数宣言は順番に並べなければならない
 // @off 規制は必要ない。
 'sort-vars': 0,
 
 // function etc.の中括弧にスペースを使うかどうか。
 // @off  
 'space-before-blocks': 0,
 
 // function の括弧にスペースを使うかどうか。
 // @off  
 'space-before-function-paren': 0,
 
 // 括弧内のスペースの使用規則
 // @off  
 'space-in-parens': 0,
 
 // 演算子の前後のスペース
 'space-infix-ops': 2,
 
 // new, delete, typeof, void, yield などの前後にはスペースを入れなければならない。,-, +, --, ++, !, !! のような式の前後にはスペースを入れない。
 'space-unary-ops': [2, {
 'words': true,
 'nonwords': false,
 }],
 
 // コメント中のスラッシュとアスタリスクの後にはスペースを入れる。
 'spaced-comment': [2, 'always', {
 'block': {
 exceptions: ['*'],
 balanced: true
 }
 }],
 
 // ストリクトモードを無効にし、「use strict」を禁止する。
 'strict': [2, 'never'],
 
 // switch のコロンの前後のスペースに関する規則
 // @off  
 'switch-colon-spacing': 0,
 
 // シンボルを作成する際には、説明を渡さなければならない。
 'symbol-description': 2,
 
 // テンプレート文字列${} 前後のスペースルール
 // @off  
 'template-curly-spacing': 0,
 
 // テンプレート文字列の前後のスペースに関するルール
 // @off  
 'template-tag-spacing': 0,
 
 // すべての文書ヘッダでBOMを禁止する
 'unicode-bom': 2,
 
 // 直接のNaN判定は禁止されており、isNaNを使用しなければならない。
 'use-isnan': 2,
 
 // 注釈はjsdoc仕様に準拠しなければならない。
 // @off 当面はスイッチを入れることは考えていない
 'valid-jsdoc': 0,
 
 // typeof 条件は "undefined"、"object"、"boolean"、"number"、"string"、"function "または "symbol "のみである。
 'valid-typeof': 2,
 
 // var スコープの一番上になければならない
 // @off var トップでないことも非常に一般的な用法である。
 'vars-on-top': 0,
 
 // 自己実行関数は、次のように括弧で囲む必要がある。{do something...})()
 'wrap-iife': [2, 'inside'],
 
 // 正規表現は括弧で囲む必要がある
 // @off  
 'wrap-regex': 0,
 
 // yield  * 前後のスペースルール
 // @off  
 'yield-star-spacing': 0,
 
 // if (true)のような依田形式の判定条件を無効にする。=== a),を使用すべきである。=== true)
 'yoda': 2,
 }
};
Read next

finalキーワード

final は、最終的な、不変の、という意味です。 finalは、オーバーライドや書き換えができないメソッドで使われます。 finalはクラスで使われます。クラスは継承できず、サブクラスもありません。 finalは、一度しか値を代入できない変数で使われます。これは定数です。通常は public static で変更します。

May 3, 2020 · 1 min read