{
  "accessor-pairs": {
    "name": "accessor-pairs",
    "value": ["error", { "setWithoutGet": true, "getWithoutSet": false }],
    "description": "setter 必须有对应的 getter，getter 可以没有对应的 setter",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Getter is not present for setter &amp;apos;bar&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(accessor-pairs)</span>\"><span class=\"token keyword\">set</span> <span class=\"token function\">bar</span></mark><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">set</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>fooValue<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "array-callback-return": {
    "name": "array-callback-return",
    "value": "error",
    "description": "数组的方法除了 forEach 之外，回调函数必须有返回值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">num</span><span class=\"token punctuation\">)</span> <span class=\"token operator\"><mark class=\"eslint-error\" data-tip=\"Array.prototype.map() expects a return value from arrow function.<br/><span class='eslint-error-rule-id'>eslint(array-callback-return)</span>\">=></mark></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>num <span class=\"token operator\">*</span> num<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">num</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> num <span class=\"token operator\">*</span> num<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "block-scoped-var": {
    "name": "block-scoped-var",
    "value": "off",
    "description": "将 var 定义的变量视为块作用域，禁止在块外使用",
    "reason": "已经禁止使用 var 了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "camelcase": {
    "name": "camelcase",
    "value": "off",
    "description": "变量名必须是 camelcase 风格的",
    "reason": "很多 api 或文件名都不是 camelcase 风格的",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "capitalized-comments": {
    "name": "capitalized-comments",
    "value": "off",
    "description": "注释的首字母必须大写",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "class-methods-use-this": {
    "name": "class-methods-use-this",
    "value": "off",
    "description": "在类的非静态方法中，必须存在对 this 的引用",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "complexity": {
    "name": "complexity",
    "value": ["error", { "max": 20 }],
    "description": "禁止函数的循环复杂度超过 20",
    "reason": "https://en.wikipedia.org/wiki/Cyclomatic_complexity",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Function &amp;apos;foo&amp;apos; has a complexity of 21. Maximum allowed is 20.<br/><span class='eslint-error-rule-id'>eslint(complexity)</span>\"><span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">6</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">7</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">9</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">11</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">12</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">13</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">14</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">15</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">17</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">20</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">6</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">7</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">8</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">9</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">i</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">11</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">12</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">13</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">14</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">15</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">17</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">19</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">20</span><span class=\"token punctuation\">)</span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "consistent-return": {
    "name": "consistent-return",
    "value": "off",
    "description": "禁止函数在不同分支返回不同类型的值",
    "reason": "缺少 TypeScript 的支持，类型判断是不准确的",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "consistent-this": {
    "name": "consistent-this",
    "value": "off",
    "description": "限制 this 的别名",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "constructor-super": {
    "name": "constructor-super",
    "value": "error",
    "description": "constructor 中必须有 super",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Bar</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Expected to call &amp;apos;super()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(constructor-super)</span>\"><span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Bar</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "default-case": {
    "name": "default-case",
    "value": "off",
    "description": "switch 语句必须有 default",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "default-case-last": {
    "name": "default-case-last",
    "value": "error",
    "description": "switch 语句中的 default 必须在最后",
    "reason": "",
    "badExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Default clause should be the last clause.<br/><span class='eslint-error-rule-id'>eslint(default-case-last)</span>\"><span class=\"token keyword\">default</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></mark>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">default</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "default-param-last": {
    "name": "default-param-last",
    "value": "off",
    "description": "有默认值的参数必须放在函数参数的末尾",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "dot-notation": {
    "name": "dot-notation",
    "value": "off",
    "description": "禁止使用 foo['bar']，必须写成 foo.bar",
    "reason": "当需要写一系列属性的时候，可以更统一",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "eqeqeq": {
    "name": "eqeqeq",
    "value": "off",
    "description": "必须使用 === 或 !==，禁止使用 == 或 !=",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\"><mark class=\"eslint-error\" data-tip=\"Expected &amp;apos;===&amp;apos; and instead saw &amp;apos;==&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(eqeqeq)</span>\">==</mark></span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>bar <span class=\"token operator\"><mark class=\"eslint-error\" data-tip=\"Expected &amp;apos;!==&amp;apos; and instead saw &amp;apos;!=&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(eqeqeq)</span>\">!=</mark></span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>bar <span class=\"token operator\">!==</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "for-direction": {
    "name": "for-direction",
    "value": "error",
    "description": "禁止方向错误的 for 循环",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"The update clause in this loop moves the variable in the wrong direction.<br/><span class='eslint-error-rule-id'>eslint(for-direction)</span>\"><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "func-name-matching": {
    "name": "func-name-matching",
    "value": ["error", "always", { "includeCommonJSModuleExports": false }],
    "description": "函数赋值给变量的时候，函数名必须与变量名一致",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> <mark class=\"eslint-error\" data-tip=\"Function name `bar` should match variable name `foo`.<br/><span class='eslint-error-rule-id'>eslint(func-name-matching)</span>\"><span class=\"token function-variable function\">foo</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">foo</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">bar</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "func-names": {
    "name": "func-names",
    "value": "off",
    "description": "函数必须有名字",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "func-style": {
    "name": "func-style",
    "value": "off",
    "description": "必须只使用函数声明或只使用函数表达式",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "getter-return": {
    "name": "getter-return",
    "value": "error",
    "description": "getter 必须有返回值，并且禁止返回空",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> user <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Expected to return a value in getter &amp;apos;name&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(getter-return)</span>\"><span class=\"token keyword\">get</span> <span class=\"token function\">name</span></mark><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">// do something</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">User</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">name</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <mark class=\"eslint-error\" data-tip=\"Expected to return a value in getter &amp;apos;name&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(getter-return)</span>\"><span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span></mark>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">const</span> user <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">name</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token string\">'Alex'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">User</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">name</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "grouped-accessor-pairs": {
    "name": "grouped-accessor-pairs",
    "value": "error",
    "description": "setter 和 getter 必须写在一起",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">set</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  baz<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n  <mark class=\"eslint-error\" data-tip=\"Accessor pair setter &amp;apos;bar&amp;apos; and getter &amp;apos;bar&amp;apos; should be grouped.<br/><span class='eslint-error-rule-id'>eslint(grouped-accessor-pairs)</span>\"><span class=\"token keyword\">get</span> <span class=\"token function\">bar</span></mark><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">set</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token keyword\">get</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  baz<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "guard-for-in": {
    "name": "guard-for-in",
    "value": "error",
    "description": "for in 内部必须有 hasOwnProperty",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype.<br/><span class='eslint-error-rule-id'>eslint(guard-for-in)</span>\"><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>key <span class=\"token keyword\">in</span> foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span>key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>key <span class=\"token keyword\">in</span> foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token class-name\">Object</span><span class=\"token punctuation\">.</span>prototype<span class=\"token punctuation\">.</span><span class=\"token function\">hasOwnProperty</span><span class=\"token punctuation\">.</span><span class=\"token function\">call</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">,</span> key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span>key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "id-denylist": {
    "name": "id-denylist",
    "value": "off",
    "description": "禁止使用指定的标识符",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "id-length": {
    "name": "id-length",
    "value": "off",
    "description": "限制变量名长度",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "id-match": {
    "name": "id-match",
    "value": "off",
    "description": "限制变量名必须匹配指定的正则表达式",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "init-declarations": {
    "name": "init-declarations",
    "value": "off",
    "description": "变量必须在定义的时候赋值",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "line-comment-position": {
    "name": "line-comment-position",
    "value": "off",
    "description": "单行注释必须写在上一行",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "lines-between-class-members": {
    "name": "lines-between-class-members",
    "value": "off",
    "description": "类的成员之间是否需要空行",
    "reason": "有时为了紧凑需要挨在一起，有时为了可读性需要空一行",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-classes-per-file": {
    "name": "max-classes-per-file",
    "value": "off",
    "description": "限制一个文件中类的数量",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-depth": {
    "name": "max-depth",
    "value": ["error", 5],
    "description": "代码块嵌套的深度禁止超过 5 层",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <mark class=\"eslint-error\" data-tip=\"Blocks are nested too deeply (6). Maximum allowed is 5.<br/><span class='eslint-error-rule-id'>eslint(max-depth)</span>\"><span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token punctuation\">}</span></mark>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-lines": {
    "name": "max-lines",
    "value": "off",
    "description": "限制一个文件最多的行数",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-lines-per-function": {
    "name": "max-lines-per-function",
    "value": "off",
    "description": "限制函数块中的代码行数",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-nested-callbacks": {
    "name": "max-nested-callbacks",
    "value": ["error", 3],
    "description": "回调函数嵌套禁止超过 3 层，多了请用 async await 替代",
    "reason": "",
    "badExample": "<span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n      <span class=\"token function\">qux</span><span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Too many nested callbacks (4). Maximum allowed is 3.<br/><span class='eslint-error-rule-id'>eslint(max-nested-callbacks)</span>\"><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">async</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">await</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">await</span> <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">await</span> <span class=\"token function\">qux</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-params": {
    "name": "max-params",
    "value": ["off", 3],
    "description": "函数的参数禁止超过 3 个",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Function &amp;apos;foo&amp;apos; has too many parameters (4). Maximum allowed is 3.<br/><span class='eslint-error-rule-id'>eslint(max-params)</span>\"><span class=\"token keyword\">function</span> <span class=\"token function\">foo</span></mark><span class=\"token punctuation\">(</span><span class=\"token parameter\">a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> a4</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">,</span> a3</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> a4 <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-statements": {
    "name": "max-statements",
    "value": "off",
    "description": "限制函数块中的语句数量",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "max-statements-per-line": {
    "name": "max-statements-per-line",
    "value": "off",
    "description": "限制一行中的语句数量",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "multiline-comment-style": {
    "name": "multiline-comment-style",
    "value": "off",
    "description": "约束多行注释的格式",
    "reason": "能写注释已经不容易了，不需要限制太多",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "new-cap": {
    "name": "new-cap",
    "value": ["error", { "newIsCap": true, "capIsNew": false, "properties": true }],
    "description": "new 后面的类名必须首字母大写",
    "reason": "",
    "badExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\"><mark class=\"eslint-error\" data-tip=\"A constructor name should not start with a lowercase letter.<br/><span class='eslint-error-rule-id'>eslint(new-cap)</span>\">foo</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">foo<span class=\"token punctuation\">.</span><mark class=\"eslint-error\" data-tip=\"A constructor name should not start with a lowercase letter.<br/><span class='eslint-error-rule-id'>eslint(new-cap)</span>\">bar</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\">Foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">foo<span class=\"token punctuation\">.</span>Bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">Foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-alert": {
    "name": "no-alert",
    "value": "off",
    "description": "禁止使用 alert",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-array-constructor": {
    "name": "no-array-constructor",
    "value": "error",
    "description": "禁止使用 Array 构造函数时传入的参数超过一个",
    "reason": "参数为一个时表示创建一个指定长度的数组，比较常用\n参数为多个时表示创建一个指定内容的数组，此时可以用数组字面量实现，不必使用构造函数",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"The array literal notation [] is preferable.<br/><span class='eslint-error-rule-id'>eslint(no-array-constructor)</span>\"><span class=\"token function\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [0, 1, 2]</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"The array literal notation [] is preferable.<br/><span class='eslint-error-rule-id'>eslint(no-array-constructor)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [0, 1, 2]</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [empty × 3]</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [empty × 3]</span>\n<span class=\"token function\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">fill</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [\"foo\", \"foo\", \"foo\"]</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Array</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">fill</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [\"foo\", \"foo\", \"foo\"]</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-async-promise-executor": {
    "name": "no-async-promise-executor",
    "value": "error",
    "description": "禁止将 async 函数做为 new Promise 的回调函数",
    "reason": "出现这种情况时，一般不需要使用 new Promise 实现异步了",
    "badExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token keyword\"><mark class=\"eslint-error\" data-tip=\"Promise executor functions should not be async.<br/><span class='eslint-error-rule-id'>eslint(no-async-promise-executor)</span>\">async</mark></span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span>resolve<span class=\"token punctuation\">,</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span>resolve<span class=\"token punctuation\">,</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-await-in-loop": {
    "name": "no-await-in-loop",
    "value": "off",
    "description": "禁止将 await 写在循环里，因为这样就无法同时发送多个异步请求了",
    "reason": "要求太严格了，有时需要在循环中写 await",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-bitwise": {
    "name": "no-bitwise",
    "value": "off",
    "description": "禁止使用位运算",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-caller": {
    "name": "no-caller",
    "value": "error",
    "description": "禁止使用 caller 或 callee",
    "reason": "它们是已废弃的语法",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">n</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">&lt;=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <mark class=\"eslint-error\" data-tip=\"Avoid arguments.callee.<br/><span class='eslint-error-rule-id'>eslint(no-caller)</span>\">arguments<span class=\"token punctuation\">.</span><span class=\"token function\">callee</span></mark><span class=\"token punctuation\">(</span>n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">n</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">&lt;=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span>n <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-case-declarations": {
    "name": "no-case-declarations",
    "value": "error",
    "description": "switch 的 case 内有变量定义的时候，必须使用大括号将 case 内变成一个代码块",
    "reason": "",
    "badExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <mark class=\"eslint-error\" data-tip=\"Unexpected lexical declaration in case block.<br/><span class='eslint-error-rule-id'>eslint(no-case-declarations)</span>\"><span class=\"token keyword\">const</span> x <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></mark>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> x <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-class-assign": {
    "name": "no-class-assign",
    "value": "error",
    "description": "禁止对已定义的 class 重新赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;Foo&amp;apos; is a class.<br/><span class='eslint-error-rule-id'>eslint(no-class-assign)</span>\">Foo</mark> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-compare-neg-zero": {
    "name": "no-compare-neg-zero",
    "value": "error",
    "description": "禁止与负零进行比较",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Do not use the &amp;apos;===&amp;apos; operator to compare against -0.<br/><span class='eslint-error-rule-id'>eslint(no-compare-neg-zero)</span>\">foo <span class=\"token operator\">===</span> <span class=\"token operator\">-</span><span class=\"token number\">0</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-cond-assign": {
    "name": "no-cond-assign",
    "value": ["error", "except-parens"],
    "description": "禁止在测试表达式中使用赋值语句，除非这个赋值语句被括号包起来了",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Expected a conditional expression and instead saw an assignment.<br/><span class='eslint-error-rule-id'>eslint(no-cond-assign)</span>\">foo <span class=\"token operator\">=</span> <span class=\"token number\">0</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>bar <span class=\"token operator\">===</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-console": {
    "name": "no-console",
    "value": "off",
    "description": "禁止使用 console",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-const-assign": {
    "name": "no-const-assign",
    "value": "error",
    "description": "禁止对使用 const 定义的常量重新赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is constant.<br/><span class='eslint-error-rule-id'>eslint(no-const-assign)</span>\">foo</mark> <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">const</span> bar <span class=\"token keyword\">in</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-constant-condition": {
    "name": "no-constant-condition",
    "value": ["error", { "checkLoops": false }],
    "description": "禁止将常量作为分支条件判断中的测试表达式，但允许作为循环条件判断中的测试表达式",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\"><mark class=\"eslint-error\" data-tip=\"Unexpected constant condition.<br/><span class='eslint-error-rule-id'>eslint(no-constant-condition)</span>\">true</mark></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\"><mark class=\"eslint-error\" data-tip=\"Unexpected constant condition.<br/><span class='eslint-error-rule-id'>eslint(no-constant-condition)</span>\">0</mark></span> <span class=\"token operator\">?</span> <span class=\"token string\">'bar'</span> <span class=\"token punctuation\">:</span> <span class=\"token string\">'baz'</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">;</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-constructor-return": {
    "name": "no-constructor-return",
    "value": "error",
    "description": "禁止在构造函数中返回值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">bar</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>bar <span class=\"token operator\">=</span> bar<span class=\"token punctuation\">;</span>\n    <mark class=\"eslint-error\" data-tip=\"Unexpected return statement in constructor.<br/><span class='eslint-error-rule-id'>eslint(no-constructor-return)</span>\"><span class=\"token keyword\">return</span> bar<span class=\"token punctuation\">;</span></mark>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">bar</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>bar<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>bar <span class=\"token operator\">=</span> bar<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-continue": {
    "name": "no-continue",
    "value": "off",
    "description": "禁止使用 continue",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-control-regex": {
    "name": "no-control-regex",
    "value": "off",
    "description": "禁止在正则表达式中出现 Ctrl 键的 ASCII 表示，即禁止使用 /\\x1f/",
    "reason": "几乎不会遇到这种场景",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-debugger": {
    "name": "no-debugger",
    "value": "error",
    "description": "禁止使用 debugger",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Unexpected &amp;apos;debugger&amp;apos; statement.<br/><span class='eslint-error-rule-id'>eslint(no-debugger)</span>\"><span class=\"token keyword\">debugger</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// debugger;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-delete-var": {
    "name": "no-delete-var",
    "value": "off",
    "description": "禁止对一个变量使用 delete",
    "reason": "编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-div-regex": {
    "name": "no-div-regex",
    "value": "off",
    "description": "禁止在正则表达式中出现形似除法操作符的开头，如 let a = /=foo/",
    "reason": "有代码高亮的话，在阅读这种代码时，也完全不会产生歧义或理解上的困难",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-dupe-args": {
    "name": "no-dupe-args",
    "value": "off",
    "description": "禁止在函数参数中出现重复名称的参数",
    "reason": "编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-dupe-class-members": {
    "name": "no-dupe-class-members",
    "value": "error",
    "description": "禁止重复定义类的成员",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n  <mark class=\"eslint-error\" data-tip=\"Duplicate name &amp;apos;bar&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-dupe-class-members)</span>\"><span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n  <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-dupe-else-if": {
    "name": "no-dupe-else-if",
    "value": "error",
    "description": "禁止 if else 的条件判断中出现重复的条件",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"This branch can never execute. Its condition is a duplicate or covered by previous conditions in the if-else-if chain.<br/><span class='eslint-error-rule-id'>eslint(no-dupe-else-if)</span>\">foo</mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-dupe-keys": {
    "name": "no-dupe-keys",
    "value": "error",
    "description": "禁止在对象字面量中出现重复的键名",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  bar<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n  <mark class=\"eslint-error\" data-tip=\"Duplicate key &amp;apos;bar&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-dupe-keys)</span>\">bar</mark><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  bar<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n  baz<span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-duplicate-case": {
    "name": "no-duplicate-case",
    "value": "error",
    "description": "禁止在 switch 语句中出现重复测试表达式的 case",
    "reason": "",
    "badExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <mark class=\"eslint-error\" data-tip=\"Duplicate case label.<br/><span class='eslint-error-rule-id'>eslint(no-duplicate-case)</span>\"><span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">3</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-duplicate-imports": {
    "name": "no-duplicate-imports",
    "value": "error",
    "description": "禁止重复导入模块",
    "reason": "",
    "badExample": "<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> readFile <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'fs'</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;fs&amp;apos; import is duplicated.<br/><span class='eslint-error-rule-id'>eslint(no-duplicate-imports)</span>\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> writeFile <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'fs'</span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> readFile<span class=\"token punctuation\">,</span> writeFile <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'fs'</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-else-return": {
    "name": "no-else-return",
    "value": "off",
    "description": "禁止在 else 内使用 return，必须改为提前结束",
    "reason": "else 中使用 return 可以使代码结构更清晰",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-empty": {
    "name": "no-empty",
    "value": ["error", { "allowEmptyCatch": true }],
    "description": "禁止出现空代码块，允许 catch 为空代码块",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <mark class=\"eslint-error\" data-tip=\"Empty block statement.<br/><span class='eslint-error-rule-id'>eslint(no-empty)</span>\"><span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-empty-character-class": {
    "name": "no-empty-character-class",
    "value": "error",
    "description": "禁止在正则表达式中使用空的字符集 []",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> reg <span class=\"token operator\">=</span> <span class=\"token regex\"><mark class=\"eslint-error\" data-tip=\"Empty class.<br/><span class='eslint-error-rule-id'>eslint(no-empty-character-class)</span>\">/abc[]/</mark></span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> reg <span class=\"token operator\">=</span> <span class=\"token regex\">/abc[a-z]/</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-empty-function": {
    "name": "no-empty-function",
    "value": "off",
    "description": "不允许有空函数",
    "reason": "有时需要将一个空函数设置为某个项的默认值",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-empty-pattern": {
    "name": "no-empty-pattern",
    "value": "error",
    "description": "禁止解构赋值中出现空 {} 或 []",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> <mark class=\"eslint-error\" data-tip=\"Unexpected empty object pattern.<br/><span class='eslint-error-rule-id'>eslint(no-empty-pattern)</span>\"><span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark> <span class=\"token operator\">=</span> foo<span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> bar <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> foo<span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-eq-null": {
    "name": "no-eq-null",
    "value": "error",
    "description": "禁止使用 foo == null，必须使用 foo === null",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Use &amp;apos;===&amp;apos; to compare with null.<br/><span class='eslint-error-rule-id'>eslint(no-eq-null)</span>\">foo <span class=\"token operator\">==</span> <span class=\"token keyword\">null</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-eval": {
    "name": "no-eval",
    "value": "error",
    "description": "禁止使用 eval",
    "reason": "",
    "badExample": "<span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"eval can be harmful.<br/><span class='eslint-error-rule-id'>eslint(no-eval)</span>\">eval</mark></span><span class=\"token punctuation\">(</span><span class=\"token string\">'const foo = 0'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-ex-assign": {
    "name": "no-ex-assign",
    "value": "error",
    "description": "禁止将 catch 的第一个参数 error 重新赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Do not assign to the exception parameter.<br/><span class='eslint-error-rule-id'>eslint(no-ex-assign)</span>\">e</mark> <span class=\"token operator\">=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">error</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-extend-native": {
    "name": "no-extend-native",
    "value": "off",
    "description": "禁止修改原生对象",
    "reason": "修改原生对象可能会与将来版本的 js 冲突",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Array prototype is read only, properties should not be added.<br/><span class='eslint-error-rule-id'>eslint(no-extend-native)</span>\"><span class=\"token class-name\">Array</span><span class=\"token punctuation\">.</span>prototype<span class=\"token punctuation\">.</span><span class=\"token function-variable function\">flat</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">;</span>\n\n<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">arr</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// do something</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-extra-bind": {
    "name": "no-extra-bind",
    "value": "error",
    "description": "禁止出现没必要的 bind",
    "reason": "",
    "badExample": "<span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">.</span><span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"The function binding is unnecessary.<br/><span class='eslint-error-rule-id'>eslint(no-extra-bind)</span>\">bind</mark></span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">.</span><span class=\"token function\">bind</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-extra-boolean-cast": {
    "name": "no-extra-boolean-cast",
    "value": "error",
    "description": "禁止不必要的布尔类型转换",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Redundant double negation.<br/><span class='eslint-error-rule-id'>eslint(no-extra-boolean-cast)</span>\"><span class=\"token operator\">!</span><span class=\"token operator\">!</span>foo</mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Redundant Boolean call.<br/><span class='eslint-error-rule-id'>eslint(no-extra-boolean-cast)</span>\"><span class=\"token function\">Boolean</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-extra-label": {
    "name": "no-extra-label",
    "value": "off",
    "description": "禁止出现没必要的 label",
    "reason": "已经禁止使用 label 了",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-fallthrough": {
    "name": "no-fallthrough",
    "value": "error",
    "description": "switch 的 case 内必须有 break, return 或 throw，空的 case 除外",
    "reason": "",
    "badExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <mark class=\"eslint-error\" data-tip=\"Expected a &amp;apos;break&amp;apos; statement before &amp;apos;case&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-fallthrough)</span>\"><span class=\"token keyword\">case</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">doSomethingElse</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">doSomethingElse</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">1</span><span class=\"token punctuation\">:</span>\n  <span class=\"token keyword\">case</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-func-assign": {
    "name": "no-func-assign",
    "value": "error",
    "description": "禁止将一个函数声明重新赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is a function.<br/><span class='eslint-error-rule-id'>eslint(no-func-assign)</span>\">foo</mark> <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">let</span> <span class=\"token function-variable function\">foo</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-global-assign": {
    "name": "no-global-assign",
    "value": "error",
    "description": "禁止对全局变量赋值",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Read-only global &amp;apos;Object&amp;apos; should not be modified.<br/><span class='eslint-error-rule-id'>eslint(no-global-assign)</span>\">Object</mark> <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span>",
    "goodExample": "foo <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-implicit-coercion": {
    "name": "no-implicit-coercion",
    "value": ["error", { "allow": ["!!"] }],
    "description": "禁止使用 ~+ 等难以理解的类型转换，仅允许使用 !!",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"use `foo.indexOf(&amp;apos;.&amp;apos;) !== -1` instead.<br/><span class='eslint-error-rule-id'>eslint(no-implicit-coercion)</span>\"><span class=\"token operator\">~</span>foo<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">'.'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> n <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"use `Number(foo)` instead.<br/><span class='eslint-error-rule-id'>eslint(no-implicit-coercion)</span>\"><span class=\"token operator\">+</span>foo</mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> m <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"use `Number(foo)` instead.<br/><span class='eslint-error-rule-id'>eslint(no-implicit-coercion)</span>\"><span class=\"token number\">1</span> <span class=\"token operator\">*</span> foo</mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> s <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"use `String(foo)` instead.<br/><span class='eslint-error-rule-id'>eslint(no-implicit-coercion)</span>\"><span class=\"token string\">''</span> <span class=\"token operator\">+</span> foo</mark><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"use `foo = String(foo)` instead.<br/><span class='eslint-error-rule-id'>eslint(no-implicit-coercion)</span>\">foo <span class=\"token operator\">+=</span> <span class=\"token string\">''</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> foo<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">'.'</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> n <span class=\"token operator\">=</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> m <span class=\"token operator\">=</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> s <span class=\"token operator\">=</span> <span class=\"token function\">String</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">=</span> <span class=\"token function\">String</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> c <span class=\"token operator\">=</span> <span class=\"token operator\">!</span><span class=\"token operator\">!</span>foo<span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-implicit-globals": {
    "name": "no-implicit-globals",
    "value": "off",
    "description": "禁止在全局作用域下定义变量或申明函数",
    "reason": "模块化之后，不会出现这种在全局作用域下定义变量的情况",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-implied-eval": {
    "name": "no-implied-eval",
    "value": "error",
    "description": "禁止在 setTimeout 或 setInterval 中传入字符串",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Implied eval. Consider passing a function instead of a string.<br/><span class='eslint-error-rule-id'>eslint(no-implied-eval)</span>\"><span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token string\">'alert(\"Hello World\");'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">alert</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Hello World'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1000</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-import-assign": {
    "name": "no-import-assign",
    "value": "error",
    "description": "禁止对导入的模块进行赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">import</span> foo <span class=\"token keyword\">from</span> <span class=\"token string\">'foo'</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is read-only.<br/><span class='eslint-error-rule-id'>eslint(no-import-assign)</span>\">foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span></mark><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">import</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">as</span> bar <span class=\"token keyword\">from</span> <span class=\"token string\">'bar'</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"The members of &amp;apos;bar&amp;apos; are read-only.<br/><span class='eslint-error-rule-id'>eslint(no-import-assign)</span>\">bar<span class=\"token punctuation\">.</span>baz <span class=\"token operator\">=</span> <span class=\"token number\">1</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">import</span> foo <span class=\"token keyword\">from</span> <span class=\"token string\">'foo'</span><span class=\"token punctuation\">;</span>\nfoo<span class=\"token punctuation\">.</span>baz <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">import</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">as</span> bar <span class=\"token keyword\">from</span> <span class=\"token string\">'bar'</span><span class=\"token punctuation\">;</span>\nbar<span class=\"token punctuation\">.</span>baz<span class=\"token punctuation\">.</span>qux <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-inline-comments": {
    "name": "no-inline-comments",
    "value": "off",
    "description": "禁止在代码后添加单行注释",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-inner-declarations": {
    "name": "no-inner-declarations",
    "value": ["error", "both"],
    "description": "禁止在 if 代码块内出现函数声明",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Move function declaration to program root.<br/><span class='eslint-error-rule-id'>eslint(no-inner-declarations)</span>\"><span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">bar</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-invalid-regexp": {
    "name": "no-invalid-regexp",
    "value": "error",
    "description": "禁止在 RegExp 构造函数中出现非法的正则表达式",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> reg1 <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Invalid regular expression: /[/: Unterminated character class.<br/><span class='eslint-error-rule-id'>eslint(no-invalid-regexp)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'['</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> reg2 <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Invalid flags supplied to RegExp constructor &amp;apos;z&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-invalid-regexp)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'.'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'z'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> reg1 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'[a-z]'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> reg2 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'.'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'g'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-invalid-this": {
    "name": "no-invalid-this",
    "value": "off",
    "description": "禁止在类之外的地方使用 this",
    "reason": "只允许在 class 中使用 this",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\"><mark class=\"eslint-error\" data-tip=\"Unexpected &amp;apos;this&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-invalid-this)</span>\">this</mark></span><span class=\"token punctuation\">.</span>a <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>a <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-irregular-whitespace": {
    "name": "no-irregular-whitespace",
    "value": ["error", { "skipStrings": true, "skipComments": false, "skipRegExps": true, "skipTemplates": true }],
    "description": "禁止使用特殊空白符（比如全角空格），除非是出现在字符串、正则表达式或模版字符串中",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><mark class=\"eslint-error\" data-tip=\"Irregular whitespace not allowed.<br/><span class='eslint-error-rule-id'>eslint(no-irregular-whitespace)</span>\">　</mark><span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\">'　'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token regex\">/　/</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> baz <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token string\">`　`</span></span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-iterator": {
    "name": "no-iterator",
    "value": "error",
    "description": "禁止使用 __iterator__",
    "reason": "__iterator__ 是一个已废弃的属性\n使用 [Symbol.iterator] 替代它",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Reserved name &amp;apos;__iterator__&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-iterator)</span>\"><span class=\"token class-name\">Foo</span><span class=\"token punctuation\">.</span>prototype<span class=\"token punctuation\">.</span><span class=\"token function-variable function\">__iterator__</span></mark> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">FooIterator</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\nfoo<span class=\"token punctuation\">[</span>Symbol<span class=\"token punctuation\">.</span>iterator<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span><span class=\"token operator\">*</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">yield</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">yield</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">yield</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>foo<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// [1, 2, 3]</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-label-var": {
    "name": "no-label-var",
    "value": "off",
    "description": "禁止 label 名称与已定义的变量重复",
    "reason": "已经禁止使用 label 了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-labels": {
    "name": "no-labels",
    "value": "error",
    "description": "禁止使用 label",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Unexpected labeled statement.<br/><span class='eslint-error-rule-id'>eslint(no-labels)</span>\">loop<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">5</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <mark class=\"eslint-error\" data-tip=\"Unexpected label in continue statement.<br/><span class='eslint-error-rule-id'>eslint(no-labels)</span>\"><span class=\"token keyword\">continue</span> loop<span class=\"token punctuation\">;</span></mark>\n        <span class=\"token punctuation\">}</span>\n        console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span></mark>\n<span class=\"token comment\">// 0 2 3 4</span>",
    "goodExample": "<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">5</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">continue</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token comment\">// 0 2 3 4</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-lone-blocks": {
    "name": "no-lone-blocks",
    "value": "error",
    "description": "禁止使用没必要的 {} 作为代码块",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Block is redundant.<br/><span class='eslint-error-rule-id'>eslint(no-lone-blocks)</span>\"><span class=\"token punctuation\">{</span>\n  <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-lonely-if": {
    "name": "no-lonely-if",
    "value": "off",
    "description": "禁止 else 中只有一个单独的 if",
    "reason": "单独的 if 可以把逻辑表达的更清楚",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-loop-func": {
    "name": "no-loop-func",
    "value": "off",
    "description": "禁止在循环内的函数内部出现循环体条件语句中定义的变量",
    "reason": "使用 let 就已经解决了这个问题了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-loss-of-precision": {
    "name": "no-loss-of-precision",
    "value": "error",
    "description": "禁止使用超出 js 精度范围的数字",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\"><mark class=\"eslint-error\" data-tip=\"This number literal will lose precision at runtime.<br/><span class='eslint-error-rule-id'>eslint(no-loss-of-precision)</span>\">5123000000000000000000000000001</mark></span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">12345</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-magic-numbers": {
    "name": "no-magic-numbers",
    "value": "off",
    "description": "禁止使用 magic numbers",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-misleading-character-class": {
    "name": "no-misleading-character-class",
    "value": "error",
    "description": "禁止正则表达式中使用肉眼无法区分的特殊字符",
    "reason": "某些特殊字符很难看出差异，最好不要在正则中使用",
    "badExample": "<span class=\"token regex\"><mark class=\"eslint-error\" data-tip=\"Unexpected combined character in character class.<br/><span class='eslint-error-rule-id'>eslint(no-misleading-character-class)</span>\">/^[Á]$/u</mark></span><span class=\"token punctuation\">.</span><span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Á'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// false</span>",
    "goodExample": "<span class=\"token regex\">/^[A]$/u</span><span class=\"token punctuation\">.</span><span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">'A'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// true</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-multi-assign": {
    "name": "no-multi-assign",
    "value": "off",
    "description": "禁止连续赋值，比如 foo = bar = 1",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-multi-str": {
    "name": "no-multi-str",
    "value": "error",
    "description": "禁止使用 \\ 来换行字符串",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Multiline support is limited to browsers supporting ES5 only.<br/><span class='eslint-error-rule-id'>eslint(no-multi-str)</span>\">'Line 1\\\nLine 2'</mark></span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token string\">`Line 1\nLine 2`</span></span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-negated-condition": {
    "name": "no-negated-condition",
    "value": "off",
    "description": "禁止 if 里有否定的表达式",
    "reason": "否定的表达式可以把逻辑表达的更清楚",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-nested-ternary": {
    "name": "no-nested-ternary",
    "value": "off",
    "description": "禁止使用嵌套的三元表达式，比如 a ? b : c ? d : e",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-new": {
    "name": "no-new",
    "value": "off",
    "description": "禁止直接 new 一个类而不赋值",
    "reason": "new 应该作为创建一个类的实例的方法，所以不能不赋值",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Do not use &amp;apos;new&amp;apos; for side effects.<br/><span class='eslint-error-rule-id'>eslint(no-new)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-new-func": {
    "name": "no-new-func",
    "value": "error",
    "description": "禁止使用 new Function",
    "reason": "这和 eval 是等价的",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"The Function constructor is eval.<br/><span class='eslint-error-rule-id'>eslint(no-new-func)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Function</span><span class=\"token punctuation\">(</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'return a + b'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">foo</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">a<span class=\"token punctuation\">,</span> b</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> a <span class=\"token operator\">+</span> b<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-new-object": {
    "name": "no-new-object",
    "value": "error",
    "description": "禁止直接 new Object",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"The object literal notation {} is preferrable.<br/><span class='eslint-error-rule-id'>eslint(no-new-object)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Object</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-new-symbol": {
    "name": "no-new-symbol",
    "value": "error",
    "description": "禁止使用 new 来生成 Symbol",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\"><mark class=\"eslint-error\" data-tip=\"`Symbol` cannot be called as a constructor.<br/><span class='eslint-error-rule-id'>eslint(no-new-symbol)</span>\">Symbol</mark></span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token function\">Symbol</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-new-wrappers": {
    "name": "no-new-wrappers",
    "value": "error",
    "description": "禁止使用 new 来生成 String, Number 或 Boolean",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> s <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Do not use String as a constructor.<br/><span class='eslint-error-rule-id'>eslint(no-new-wrappers)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">String</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> n <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Do not use Number as a constructor.<br/><span class='eslint-error-rule-id'>eslint(no-new-wrappers)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Number</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Do not use Boolean as a constructor.<br/><span class='eslint-error-rule-id'>eslint(no-new-wrappers)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Boolean</span><span class=\"token punctuation\">(</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> s <span class=\"token operator\">=</span> <span class=\"token function\">String</span><span class=\"token punctuation\">(</span>someValue<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> n <span class=\"token operator\">=</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span>someValue<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> <span class=\"token function\">Boolean</span><span class=\"token punctuation\">(</span>someValue<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-obj-calls": {
    "name": "no-obj-calls",
    "value": "error",
    "description": "禁止将 Math, JSON 或 Reflect 直接作为函数调用",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"&amp;apos;Math&amp;apos; is not a function.<br/><span class='eslint-error-rule-id'>eslint(no-obj-calls)</span>\"><span class=\"token function\">Math</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"&amp;apos;JSON&amp;apos; is not a function.<br/><span class='eslint-error-rule-id'>eslint(no-obj-calls)</span>\"><span class=\"token constant\">JSON</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> baz <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"&amp;apos;Reflect&amp;apos; is not a function.<br/><span class='eslint-error-rule-id'>eslint(no-obj-calls)</span>\"><span class=\"token function\">Reflect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> Math<span class=\"token punctuation\">.</span><span class=\"token function\">random</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token constant\">JSON</span><span class=\"token punctuation\">.</span><span class=\"token function\">parse</span><span class=\"token punctuation\">(</span><span class=\"token string\">'{}'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> baz <span class=\"token operator\">=</span> Reflect<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> x<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> y<span class=\"token punctuation\">:</span> <span class=\"token number\">2</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'x'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-octal": {
    "name": "no-octal",
    "value": "off",
    "description": "禁止使用 0 开头的数字表示八进制数",
    "reason": "编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-octal-escape": {
    "name": "no-octal-escape",
    "value": "off",
    "description": "禁止使用八进制的转义符",
    "reason": "编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-param-reassign": {
    "name": "no-param-reassign",
    "value": "error",
    "description": "禁止对函数的参数重新赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">bar</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Assignment to function parameter &amp;apos;bar&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-param-reassign)</span>\">bar</mark> <span class=\"token operator\">=</span> bar <span class=\"token operator\">||</span> <span class=\"token string\">''</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">bar_</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  bar <span class=\"token operator\">=</span> bar_ <span class=\"token operator\">||</span> <span class=\"token string\">''</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-plusplus": {
    "name": "no-plusplus",
    "value": "off",
    "description": "禁止使用 ++ 或 --",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-promise-executor-return": {
    "name": "no-promise-executor-return",
    "value": "error",
    "description": "禁止在 Promise 的回调函数中直接 return",
    "reason": "",
    "badExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve<span class=\"token punctuation\">,</span> reject</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>someCondition<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <mark class=\"eslint-error\" data-tip=\"Return values from promise executor functions cannot be read.<br/><span class='eslint-error-rule-id'>eslint(no-promise-executor-return)</span>\"><span class=\"token keyword\">return</span> defaultResult<span class=\"token punctuation\">;</span></mark>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token function\">getSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">err<span class=\"token punctuation\">,</span> result</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>err<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token function\">reject</span><span class=\"token punctuation\">(</span>err<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token function\">resolve</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve<span class=\"token punctuation\">,</span> reject</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>someCondition<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">resolve</span><span class=\"token punctuation\">(</span>defaultResult<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token function\">getSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">err<span class=\"token punctuation\">,</span> result</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>err<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token function\">reject</span><span class=\"token punctuation\">(</span>err<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token function\">resolve</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-proto": {
    "name": "no-proto",
    "value": "error",
    "description": "禁止使用 __proto__",
    "reason": "__proto__ 是已废弃的语法",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"The &amp;apos;__proto__&amp;apos; property is deprecated.<br/><span class='eslint-error-rule-id'>eslint(no-proto)</span>\">bar<span class=\"token punctuation\">.</span>__proto__</mark><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"The &amp;apos;__proto__&amp;apos; property is deprecated.<br/><span class='eslint-error-rule-id'>eslint(no-proto)</span>\">bar<span class=\"token punctuation\">.</span>__proto__</mark> <span class=\"token operator\">=</span> baz<span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> Object<span class=\"token punctuation\">.</span><span class=\"token function\">getPrototypeOf</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nObject<span class=\"token punctuation\">.</span><span class=\"token function\">setPrototypeOf</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">,</span> baz<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-prototype-builtins": {
    "name": "no-prototype-builtins",
    "value": "off",
    "description": "禁止使用 hasOwnProperty, isPrototypeOf 或 propertyIsEnumerable",
    "reason": "hasOwnProperty 比较常用",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-redeclare": {
    "name": "no-redeclare",
    "value": "off",
    "description": "禁止重复定义变量",
    "reason": "禁用 var 之后，编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-regex-spaces": {
    "name": "no-regex-spaces",
    "value": "error",
    "description": "禁止在正则表达式中出现连续的空格",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> reg1 <span class=\"token operator\">=</span> <span class=\"token regex\"><mark class=\"eslint-error\" data-tip=\"Spaces are hard to count. Use {3}.<br/><span class='eslint-error-rule-id'>eslint(no-regex-spaces)</span>\">/foo   bar/</mark></span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> reg2 <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Spaces are hard to count. Use {3}.<br/><span class='eslint-error-rule-id'>eslint(no-regex-spaces)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo   bar'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> reg1 <span class=\"token operator\">=</span> <span class=\"token regex\">/foo {3}bar/</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> reg2 <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo {3}bar'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-restricted-exports": {
    "name": "no-restricted-exports",
    "value": "off",
    "description": "禁止导出指定的变量名",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-restricted-globals": {
    "name": "no-restricted-globals",
    "value": "off",
    "description": "禁止使用指定的全局变量",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-restricted-imports": {
    "name": "no-restricted-imports",
    "value": "off",
    "description": "禁止导入指定的模块",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-restricted-properties": {
    "name": "no-restricted-properties",
    "value": "off",
    "description": "禁止使用指定的对象属性",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-restricted-syntax": {
    "name": "no-restricted-syntax",
    "value": "off",
    "description": "禁止使用指定的语法",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-return-assign": {
    "name": "no-return-assign",
    "value": ["error", "always"],
    "description": "禁止在 return 语句里赋值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Return statement should not contain assignment.<br/><span class='eslint-error-rule-id'>eslint(no-return-assign)</span>\"><span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> bar<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-return-await": {
    "name": "no-return-await",
    "value": "off",
    "description": "禁止在 return 语句里使用 await",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-script-url": {
    "name": "no-script-url",
    "value": "off",
    "description": "禁止出现 location.href = 'javascript:void(0)';",
    "reason": "有些场景下还是需要用到这个",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-self-assign": {
    "name": "no-self-assign",
    "value": "error",
    "description": "禁止将自己赋值给自己",
    "reason": "",
    "badExample": "foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is assigned to itself.<br/><span class='eslint-error-rule-id'>eslint(no-self-assign)</span>\">foo</mark><span class=\"token punctuation\">;</span>",
    "goodExample": "foo <span class=\"token operator\">=</span> bar<span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-self-compare": {
    "name": "no-self-compare",
    "value": "error",
    "description": "禁止将自己与自己比较",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Comparing to itself is potentially pointless.<br/><span class='eslint-error-rule-id'>eslint(no-self-compare)</span>\">foo <span class=\"token operator\">===</span> foo</mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Comparing to itself is potentially pointless.<br/><span class='eslint-error-rule-id'>eslint(no-self-compare)</span>\"><span class=\"token number\">NaN</span> <span class=\"token operator\">===</span> <span class=\"token number\">NaN</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> bar<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">isNaN</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-sequences": {
    "name": "no-sequences",
    "value": "error",
    "description": "禁止使用逗号操作符",
    "reason": "",
    "badExample": "foo <span class=\"token operator\">=</span> <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\"><mark class=\"eslint-error\" data-tip=\"Unexpected use of comma operator.<br/><span class='eslint-error-rule-id'>eslint(no-sequences)</span>\">,</mark></span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-setter-return": {
    "name": "no-setter-return",
    "value": "error",
    "description": "禁止 setter 有返回值",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">set</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n    <mark class=\"eslint-error\" data-tip=\"Setter cannot return a value.<br/><span class='eslint-error-rule-id'>eslint(no-setter-return)</span>\"><span class=\"token keyword\">return</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue<span class=\"token punctuation\">;</span></mark>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">set</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">value</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>barValue <span class=\"token operator\">=</span> <span class=\"token string\">'bar '</span> <span class=\"token operator\">+</span> value<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-shadow": {
    "name": "no-shadow",
    "value": "off",
    "description": "禁止变量名与上层作用域内的已定义的变量重复",
    "reason": "很多时候函数的形参和传参是同名的",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-shadow-restricted-names": {
    "name": "no-shadow-restricted-names",
    "value": "error",
    "description": "禁止使用保留字作为变量名",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> <span class=\"token keyword\"><mark class=\"eslint-error\" data-tip=\"Shadowing of global property &amp;apos;undefined&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-shadow-restricted-names)</span>\">undefined</mark></span> <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token number\"><mark class=\"eslint-error\" data-tip=\"Shadowing of global property &amp;apos;NaN&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-shadow-restricted-names)</span>\">NaN</mark></span></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"Shadowing of global property &amp;apos;Infinity&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-shadow-restricted-names)</span>\">Infinity</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "goodExample": "console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">undefined</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token number\">NaN</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token number\">Infinity</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-sparse-arrays": {
    "name": "no-sparse-arrays",
    "value": "error",
    "description": "禁止在数组中出现连续的逗号",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Unexpected comma in middle of array.<br/><span class='eslint-error-rule-id'>eslint(no-sparse-arrays)</span>\"><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-template-curly-in-string": {
    "name": "no-template-curly-in-string",
    "value": "off",
    "description": "禁止在普通字符串中出现模版字符串里的变量形式",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Unexpected template string expression.<br/><span class='eslint-error-rule-id'>eslint(no-template-curly-in-string)</span>\">'Hello ${bar}'</mark></span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\">'Hello {bar}'</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-ternary": {
    "name": "no-ternary",
    "value": "off",
    "description": "禁止使用三元表达式",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-this-before-super": {
    "name": "no-this-before-super",
    "value": "error",
    "description": "禁止在 super 被调用之前使用 this 或 super",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Bar</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\"><mark class=\"eslint-error\" data-tip=\"&amp;apos;this&amp;apos; is not allowed before &amp;apos;super()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-this-before-super)</span>\">this</mark></span><span class=\"token punctuation\">.</span>foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Bar</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-throw-literal": {
    "name": "no-throw-literal",
    "value": "error",
    "description": "禁止 throw 字面量，必须 throw 一个 Error 对象",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Expected an error object to be thrown.<br/><span class='eslint-error-rule-id'>eslint(no-throw-literal)</span>\"><span class=\"token keyword\">throw</span> <span class=\"token string\">'foo'</span><span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an error object to be thrown.<br/><span class='eslint-error-rule-id'>eslint(no-throw-literal)</span>\"><span class=\"token keyword\">throw</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Error</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-undef": {
    "name": "no-undef",
    "value": "error",
    "description": "禁止使用未定义的变量",
    "reason": "",
    "badExample": "<span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is not defined.<br/><span class='eslint-error-rule-id'>esli<mark class=\"eslint-error\" data-tip=\"&amp;apos;bar&amp;apos; is not defined.<br/><span class='eslint-error-rule-id'>eslint(no-undef)</span>\">nt(</mark>no-undef)</span>\">foo</mark></span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">foo</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> baz <span class=\"token operator\">===</span> <span class=\"token string\">'number'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-undef-init": {
    "name": "no-undef-init",
    "value": "error",
    "description": "禁止将 undefined 赋值给变量",
    "reason": "",
    "badExample": "<span class=\"token keyword\">let</span> <mark class=\"eslint-error\" data-tip=\"It&amp;apos;s not necessary to initialize &amp;apos;foo&amp;apos; to undefined.<br/><span class='eslint-error-rule-id'>eslint(no-undef-init)</span>\">foo <span class=\"token operator\">=</span> <span class=\"token keyword\">undefined</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">let</span> foo<span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-undefined": {
    "name": "no-undefined",
    "value": "off",
    "description": "禁止使用 undefined",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-underscore-dangle": {
    "name": "no-underscore-dangle",
    "value": "off",
    "description": "禁止变量名出现下划线",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unmodified-loop-condition": {
    "name": "no-unmodified-loop-condition",
    "value": "error",
    "description": "循环内必须对循环条件中的变量有修改",
    "reason": "",
    "badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is not modified in this loop.<br/><span class='eslint-error-rule-id'>eslint(no-unmodified-loop-condition)</span>\">foo</mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  foo<span class=\"token operator\">--</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unneeded-ternary": {
    "name": "no-unneeded-ternary",
    "value": "off",
    "description": "必须使用 !a 替代 a ? false : true",
    "reason": "后者表达的更清晰",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unreachable": {
    "name": "no-unreachable",
    "value": "error",
    "description": "禁止在 return, throw, break 或 continue 之后还有代码",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n  <mark class=\"eslint-error\" data-tip=\"Unreachable code.<br/><span class='eslint-error-rule-id'>eslint(no-unreachable)</span>\"><span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n  <span class=\"token comment\">// const bar = 1;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unreachable-loop": {
    "name": "no-unreachable-loop",
    "value": "error",
    "description": "禁止在第一轮循环时就一定会退出循环的情况出现",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Invalid loop. Its body allows only one iteration.<br/><span class='eslint-error-rule-id'>eslint(no-unreachable-loop)</span>\"><span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>foo <span class=\"token keyword\">of</span> bar<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">.</span>id <span class=\"token operator\">===</span> id<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>foo <span class=\"token keyword\">of</span> bar<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">.</span>id <span class=\"token operator\">===</span> id<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unsafe-finally": {
    "name": "no-unsafe-finally",
    "value": "error",
    "description": "禁止在 finally 中出现 return, throw, break 或 continue",
    "reason": "finally 中的语句会在 try 之前执行",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span> <span class=\"token keyword\">finally</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">// finally 会在 try 之前执行，故会 return 2</span>\n    <mark class=\"eslint-error\" data-tip=\"Unsafe usage of ReturnStatement.<br/><span class='eslint-error-rule-id'>eslint(no-unsafe-finally)</span>\"><span class=\"token keyword\">return</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span></mark>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span> <span class=\"token keyword\">finally</span> <span class=\"token punctuation\">{</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unsafe-negation": {
    "name": "no-unsafe-negation",
    "value": "error",
    "description": "禁止在 in 或 instanceof 操作符的左侧变量前使用感叹号",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Unexpected negating the left operand of &amp;apos;in&amp;apos; operator.<br/><span class='eslint-error-rule-id'>eslint(no-unsafe-negation)</span>\"><span class=\"token operator\">!</span>key</mark> <span class=\"token keyword\">in</span> object<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Unexpected negating the left operand of &amp;apos;instanceof&amp;apos; operator.<br/><span class='eslint-error-rule-id'>eslint(no-unsafe-negation)</span>\"><span class=\"token operator\">!</span>obj</mark> <span class=\"token keyword\">instanceof</span> <span class=\"token class-name\">SomeClass</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token punctuation\">(</span>key <span class=\"token keyword\">in</span> object<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span><span class=\"token punctuation\">(</span>obj <span class=\"token keyword\">instanceof</span> <span class=\"token class-name\">SomeClass</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unused-expressions": {
    "name": "no-unused-expressions",
    "value": ["error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }],
    "description": "禁止无用的表达式",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\"><span class=\"token number\">1</span><span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\">foo<span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\"><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\">foo <span class=\"token operator\">&amp;&amp;</span> bar<span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\">foo <span class=\"token operator\">||</span> bar<span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\">foo <span class=\"token operator\">?</span> bar <span class=\"token punctuation\">:</span> baz<span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Expected an assignment or function call and instead saw an expression.<br/><span class='eslint-error-rule-id'>eslint(no-unused-expressions)</span>\"><span class=\"token template-string\"><span class=\"token string\">`bar`</span></span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token string\">'use strict'</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">&amp;&amp;</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">||</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo <span class=\"token operator\">?</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">:</span> <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo<span class=\"token template-string\"><span class=\"token string\">`bar`</span></span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unused-labels": {
    "name": "no-unused-labels",
    "value": "off",
    "description": "禁止出现没用到的 label",
    "reason": "已经禁止使用 label 了",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-unused-vars": {
    "name": "no-unused-vars",
    "value": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": false, "caughtErrors": "none" }],
    "description": "已定义的变量必须使用",
    "reason": "",
    "badExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; is assigned a value but never used.<br/><span class='eslint-error-rule-id'>eslint(no-unused-vars)</span>\">foo</mark> <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">function</span> <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"&amp;apos;bar&amp;apos; is defined but never used.<br/><span class='eslint-error-rule-id'>eslint(no-unused-vars)</span>\">bar</mark></span><span class=\"token punctuation\">(</span><span class=\"token parameter\">baz</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> <mark class=\"eslint-error\" data-tip=\"&amp;apos;baz&amp;apos; is assigned a value but never used.<br/><span class='eslint-error-rule-id'>eslint(n<mark class=\"eslint-error\" data-tip=\"&amp;apos;rest&amp;apos; is assigned a value but never used.<br/><span class='eslint-error-rule-id'>eslint(no-unused-vars)</span>\">o-un</mark>used-vars)</span>\">baz</mark><span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>rest <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> data<span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">baz</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> baz<span class=\"token punctuation\">,</span> <span class=\"token operator\">...</span>rest <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> data<span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>baz<span class=\"token punctuation\">,</span> rest<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-use-before-define": {
    "name": "no-use-before-define",
    "value": ["error", { "variables": false, "functions": false, "classes": false }],
    "description": "变量必须先定义后使用",
    "reason": "",
    "badExample": "console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"&amp;apos;foo&amp;apos; was used before it was defined.<br/><span class='eslint-error-rule-id'>eslint(no-use-before-define)</span>\">foo</mark><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">new</span> <span class=\"token class-name\"><mark class=\"eslint-error\" data-tip=\"&amp;apos;Baz&amp;apos; was used before it was defined.<br/><span class='eslint-error-rule-id'>eslint(no-use-before-define)</span>\">Baz</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Baz</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">new</span> <span class=\"token class-name\">Baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Baz</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-backreference": {
    "name": "no-useless-backreference",
    "value": "error",
    "description": "禁止正则表达式中出现无用的回溯引用",
    "reason": "某些回溯引用语法上没问题，但是会永远匹配到空字符串",
    "badExample": "<span class=\"token regex\"><mark class=\"eslint-error\" data-tip=\"Backreference &amp;apos;\\1&amp;apos; will be ignored. It references group &amp;apos;(a)&amp;apos; which is in another alternative.<br/><span class='eslint-error-rule-id'>eslint(no-useless-backreference)</span>\">/^(?:(a)|\\1b)$/</mark></span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// reference to (a) into another alternative</span>",
    "goodExample": "<span class=\"token regex\">/^(?:(a)|(b)\\2)$/</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// reference to (b)</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-call": {
    "name": "no-useless-call",
    "value": "error",
    "description": "禁止出现没必要的 call 或 apply",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Unnecessary &amp;apos;.call()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-useless-call)</span>\"><span class=\"token function\">foo</span><span class=\"token punctuation\">.</span><span class=\"token function\">call</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// foo(1, 2, 3)</span>\n<mark class=\"eslint-error\" data-tip=\"Unnecessary &amp;apos;.apply()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-useless-call)</span>\"><span class=\"token function\">foo</span><span class=\"token punctuation\">.</span><span class=\"token function\">apply</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// foo(1, 2, 3)</span>\n\n<mark class=\"eslint-error\" data-tip=\"Unnecessary &amp;apos;.call()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-useless-call)</span>\">foo<span class=\"token punctuation\">.</span><span class=\"token function\">bar</span><span class=\"token punctuation\">.</span><span class=\"token function\">call</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// foo.bar(1, 2, 3);</span>\n<mark class=\"eslint-error\" data-tip=\"Unnecessary &amp;apos;.apply()&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-useless-call)</span>\">foo<span class=\"token punctuation\">.</span><span class=\"token function\">bar</span><span class=\"token punctuation\">.</span><span class=\"token function\">apply</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// foo.bar(1, 2, 3);</span>",
    "goodExample": "<span class=\"token function\">foo</span><span class=\"token punctuation\">.</span><span class=\"token function\">call</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">foo</span><span class=\"token punctuation\">.</span><span class=\"token function\">apply</span><span class=\"token punctuation\">(</span>bar<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\nfoo<span class=\"token punctuation\">.</span><span class=\"token function\">bar</span><span class=\"token punctuation\">.</span><span class=\"token function\">call</span><span class=\"token punctuation\">(</span>baz<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nfoo<span class=\"token punctuation\">.</span><span class=\"token function\">bar</span><span class=\"token punctuation\">.</span><span class=\"token function\">apply</span><span class=\"token punctuation\">(</span>baz<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-catch": {
    "name": "no-useless-catch",
    "value": "error",
    "description": "禁止在 catch 中仅仅只是把错误 throw 出去",
    "reason": "这样的 catch 是没有意义的，等价于直接执行 try 里的代码",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Unnecessary try/catch wrapper.<br/><span class='eslint-error-rule-id'>eslint(no-useless-catch)</span>\"><span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">doSomethingThatMightThrow</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">throw</span> e<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token function\">doSomethingThatMightThrow</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">doSomethingThatMightThrow</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span> <span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">doSomethingBeforeRethrow</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">throw</span> e<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-computed-key": {
    "name": "no-useless-computed-key",
    "value": "error",
    "description": "禁止出现没必要的计算键名",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Unnecessarily computed property [&amp;apos;1&amp;apos;] found.<br/><span class='eslint-error-rule-id'>eslint(no-useless-computed-key)</span>\"><span class=\"token punctuation\">[</span><span class=\"token string\">'1'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span></mark><span class=\"token punctuation\">,</span>\n  <mark class=\"eslint-error\" data-tip=\"Unnecessarily computed property [&amp;apos;bar&amp;apos;] found.<br/><span class='eslint-error-rule-id'>eslint(no-useless-computed-key)</span>\"><span class=\"token punctuation\">[</span><span class=\"token string\">'bar'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'bar'</span></mark><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token number\">1</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n  bar<span class=\"token punctuation\">:</span> <span class=\"token string\">'bar'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-concat": {
    "name": "no-useless-concat",
    "value": "error",
    "description": "禁止出现没必要的字符串连接",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\">'f'</span> <span class=\"token operator\"><mark class=\"eslint-error\" data-tip=\"Unexpected string concatenation of literals.<br/><span class='eslint-error-rule-id'>eslint(no-useless-concat)</span>\">+</mark></span> <span class=\"token string\">'oo'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token string\">`b`</span></span> <span class=\"token operator\"><mark class=\"eslint-error\" data-tip=\"Unexpected string concatenation of literals.<br/><span class='eslint-error-rule-id'>eslint(no-useless-concat)</span>\">+</mark></span> <span class=\"token template-string\"><span class=\"token string\">`ar`</span></span><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token string\">'fo'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span> <span class=\"token operator\">+</span> <span class=\"token template-string\"><span class=\"token string\">`ar`</span></span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-constructor": {
    "name": "no-useless-constructor",
    "value": "error",
    "description": "禁止出现没必要的 constructor",
    "reason": "",
    "badExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Useless constructor.<br/><span class='eslint-error-rule-id'>eslint(no-useless-constructor)</span>\"><span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span></mark>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Bar</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Useless constructor.<br/><span class='eslint-error-rule-id'>eslint(no-useless-constructor)</span>\"><span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token operator\">...</span>args</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>args<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">class</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">class</span> <span class=\"token class-name\">Bar</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\">Foo</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">constructor</span><span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token operator\">...</span>args</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">super</span><span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>args<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">doSomething</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-escape": {
    "name": "no-useless-escape",
    "value": "off",
    "description": "禁止出现没必要的转义",
    "reason": "转义可以使代码更易懂",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-rename": {
    "name": "no-useless-rename",
    "value": "error",
    "description": "禁止解构赋值时出现同样名字的的重命名，比如 let { foo: foo } = bar;",
    "reason": "",
    "badExample": "<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> <mark class=\"eslint-error\" data-tip=\"Import foo unnecessarily renamed.<br/><span class='eslint-error-rule-id'>eslint(no-useless-rename)</span>\">foo <span class=\"token keyword\">as</span> foo</mark> <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'foo'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token punctuation\">{</span> <mark class=\"eslint-error\" data-tip=\"Export bar unnecessarily renamed.<br/><span class='eslint-error-rule-id'>eslint(no-useless-rename)</span>\">bar <span class=\"token keyword\">as</span> bar</mark> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> <span class=\"token punctuation\">{</span> <mark class=\"eslint-error\" data-tip=\"Destructuring assignment baz unnecessarily renamed.<br/><span class='eslint-error-rule-id'>eslint(no-useless-rename)</span>\">baz<span class=\"token punctuation\">:</span> baz</mark> <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> foo<span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> foo <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'foo'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token punctuation\">{</span> bar <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> <span class=\"token punctuation\">{</span> baz <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> foo<span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-useless-return": {
    "name": "no-useless-return",
    "value": "off",
    "description": "禁止没必要的 return",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-var": {
    "name": "no-var",
    "value": "error",
    "description": "禁止使用 var",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Unexpected var, use let or const instead.<br/><span class='eslint-error-rule-id'>eslint(no-var)</span>\"><span class=\"token keyword\">var</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token keyword\">let</span> foo <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> bar <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-void": {
    "name": "no-void",
    "value": "error",
    "description": "禁止使用 void",
    "reason": "",
    "badExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <mark class=\"eslint-error\" data-tip=\"Expected &amp;apos;undefined&amp;apos; and instead saw &amp;apos;void&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(no-void)</span>\"><span class=\"token keyword\">void</span> <span class=\"token number\">0</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-warning-comments": {
    "name": "no-warning-comments",
    "value": "off",
    "description": "禁止注释中出现 TODO 和 FIXME",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "no-with": {
    "name": "no-with",
    "value": "off",
    "description": "禁止使用 with",
    "reason": "编译阶段就会报错了",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "object-shorthand": {
    "name": "object-shorthand",
    "value": "off",
    "description": "必须使用 a = {b} 而不是 a = {b: b}",
    "reason": "有时后者可以使代码结构更清晰",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "one-var": {
    "name": "one-var",
    "value": ["error", "never"],
    "description": "禁止变量申明时用逗号一次申明多个",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Split &amp;apos;let&amp;apos; declarations into multiple statements.<br/><span class='eslint-error-rule-id'>eslint(one-var)</span>\"><span class=\"token keyword\">let</span> foo<span class=\"token punctuation\">,</span> bar<span class=\"token punctuation\">;</span></mark>\n<mark class=\"eslint-error\" data-tip=\"Split &amp;apos;const&amp;apos; declarations into multiple statements.<br/><span class='eslint-error-rule-id'>eslint(one-var)</span>\"><span class=\"token keyword\">const</span> baz <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n  qux <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span></mark>",
    "goodExample": "<span class=\"token keyword\">let</span> foo<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> bar<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> baz <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> qux <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "operator-assignment": {
    "name": "operator-assignment",
    "value": "off",
    "description": "必须使用 x = x + y 而不是 x += y",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "padding-line-between-statements": {
    "name": "padding-line-between-statements",
    "value": "off",
    "description": "限制语句之间的空行规则，比如变量定义完之后必须要空行",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-const": {
    "name": "prefer-const",
    "value": "off",
    "description": "申明后不再被修改的变量必须使用 const 来申明",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-destructuring": {
    "name": "prefer-destructuring",
    "value": "off",
    "description": "必须使用解构赋值",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-exponentiation-operator": {
    "name": "prefer-exponentiation-operator",
    "value": "off",
    "description": "使用 ES2016 的语法 ** 替代 Math.pow",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-named-capture-group": {
    "name": "prefer-named-capture-group",
    "value": "off",
    "description": "使用 ES2018 中的正则表达式命名组",
    "reason": "正则表达式已经较难理解了，没必要强制加上命名组",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-numeric-literals": {
    "name": "prefer-numeric-literals",
    "value": "off",
    "description": "必须使用 0b11111011 而不是 parseInt()",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-object-spread": {
    "name": "prefer-object-spread",
    "value": "error",
    "description": "必须使用 ... 而不是 Object.assign，除非 Object.assign 的第一个参数是一个变量",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Use an object spread instead of `Object.assign` eg: `{ ...foo }`.<br/><span class='eslint-error-rule-id'>eslint(prefer-object-spread)</span>\">Object<span class=\"token punctuation\">.</span><span class=\"token function\">assign</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> bar<span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> <span class=\"token operator\">...</span>bar <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// 第一个参数为变量时允许使用 Object.assign</span>\nObject<span class=\"token punctuation\">.</span><span class=\"token function\">assign</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">,</span> baz<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-promise-reject-errors": {
    "name": "prefer-promise-reject-errors",
    "value": "error",
    "description": "Promise 的 reject 中必须传入 Error 对象，而不是字面量",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Expected the Promise rejection reason to be an Error.<br/><span class='eslint-error-rule-id'>eslint(prefer-promise-reject-errors)</span>\">Promise<span class=\"token punctuation\">.</span><span class=\"token function\">reject</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve<span class=\"token punctuation\">,</span> reject</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Expected the Promise rejection reason to be an Error.<br/><span class='eslint-error-rule-id'>eslint(prefer-promise-reject-errors)</span>\"><span class=\"token function\">reject</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve<span class=\"token punctuation\">,</span> reject</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"Expected the Promise rejection reason to be an Error.<br/><span class='eslint-error-rule-id'>eslint(prefer-promise-reject-errors)</span>\"><span class=\"token function\">reject</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "goodExample": "Promise<span class=\"token punctuation\">.</span><span class=\"token function\">reject</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Error</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">resolve<span class=\"token punctuation\">,</span> reject</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">reject</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Error</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-regex-literals": {
    "name": "prefer-regex-literals",
    "value": "error",
    "description": "优先使用正则表达式字面量，而不是 RegExp 构造函数",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"Use a regular expression literal instead of the &amp;apos;RegExp&amp;apos; constructor.<br/><span class='eslint-error-rule-id'>eslint(prefer-regex-literals)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'abc'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"Use a regular expression literal instead of the &amp;apos;RegExp&amp;apos; constructor.<br/><span class='eslint-error-rule-id'>eslint(prefer-regex-literals)</span>\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span><span class=\"token string\">'\\\\.'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'g'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token regex\">/abc/</span><span class=\"token punctuation\">;</span>\n<span class=\"token regex\">/\\./g</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">new</span> <span class=\"token class-name\">RegExp</span><span class=\"token punctuation\">(</span>prefix <span class=\"token operator\">+</span> <span class=\"token string\">'abc'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-rest-params": {
    "name": "prefer-rest-params",
    "value": "off",
    "description": "必须使用 ...args 而不是 arguments",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-spread": {
    "name": "prefer-spread",
    "value": "off",
    "description": "必须使用 ... 而不是 apply，比如 foo(...args)",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "prefer-template": {
    "name": "prefer-template",
    "value": "off",
    "description": "必须使用模版字符串而不是字符串连接",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "radix": {
    "name": "radix",
    "value": "off",
    "description": "parseInt 必须传入第二个参数",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Missing radix parameter.<br/><span class='eslint-error-rule-id'>eslint(radix)</span>\"><span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span><span class=\"token string\">'071'</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 57</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span><span class=\"token string\">'071'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 71</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "require-atomic-updates": {
    "name": "require-atomic-updates",
    "value": "off",
    "description": "禁止将 await 或 yield 的结果做为运算符的后面项",
    "reason": "这样会导致不符合预期的结果\nhttps://github.com/eslint/eslint/issues/11899\n在上面 issue 修复之前，关闭此规则",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "require-await": {
    "name": "require-await",
    "value": "off",
    "description": "async 函数中必须存在 await 语句",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "require-unicode-regexp": {
    "name": "require-unicode-regexp",
    "value": "off",
    "description": "正则表达式中必须要加上 u 标志",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "require-yield": {
    "name": "require-yield",
    "value": "error",
    "description": "generator 函数内必须有 yield",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"This generator function does not have &amp;apos;yield&amp;apos;.<br/><span class='eslint-error-rule-id'>eslint(require-yield)</span>\"><span class=\"token keyword\">function</span><span class=\"token operator\">*</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></mark>",
    "goodExample": "<span class=\"token keyword\">function</span><span class=\"token operator\">*</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">yield</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "sort-imports": {
    "name": "sort-imports",
    "value": "off",
    "description": "导入必须按规则排序",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "sort-keys": {
    "name": "sort-keys",
    "value": "off",
    "description": "对象字面量的键名必须排好序",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "sort-vars": {
    "name": "sort-vars",
    "value": "off",
    "description": "变量申明必须排好序",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "spaced-comment": {
    "name": "spaced-comment",
    "value": ["error", "always", { "block": { "exceptions": ["*"], "balanced": true } }],
    "description": "注释的斜线或 * 后必须有空格",
    "reason": "",
    "badExample": "<span class=\"token comment\"><mark class=\"eslint-error\" data-tip=\"Expected space or tab after &amp;apos;//&amp;apos; in comment.<br/><span class='eslint-error-rule-id'>eslint(spaced-comment)</span>\">//foo</mark></span>\n<span class=\"token comment\"><mark class=\"eslint-error\" data-tip=\"Expected exception block, space or tab after &amp;apos;/*&amp;apos; in comment.<br/><span class='eslint-error-rule-id'>eslint(spaced-comment)</span>\">/*bar */</mark></span>\n<span class=\"token comment\"><mark class=\"eslint-error\" data-tip=\"Expected exception block, space or tab after &amp;apos;/**&amp;apos; in comment.<br/><span class='eslint-error-rule-id'>eslint(spaced-comment)</span>\">/**baz */</mark></span>",
    "goodExample": "<span class=\"token comment\">// foo</span>\n<span class=\"token comment\">/* bar */</span>\n<span class=\"token comment\">/** baz */</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "strict": {
    "name": "strict",
    "value": ["error", "never"],
    "description": "禁止使用 'strict';",
    "reason": "",
    "badExample": "<mark class=\"eslint-error\" data-tip=\"&amp;apos;use strict&amp;apos; is unnecessary inside of modules.<br/><span class='eslint-error-rule-id'>eslint(strict)</span>\"><span class=\"token string\">'use strict'</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <mark class=\"eslint-error\" data-tip=\"&amp;apos;use strict&amp;apos; is unnecessary inside of modules.<br/><span class='eslint-error-rule-id'>eslint(strict)</span>\"><span class=\"token string\">'use strict'</span><span class=\"token punctuation\">;</span></mark>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">function</span> <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "symbol-description": {
    "name": "symbol-description",
    "value": "error",
    "description": "创建 Symbol 时必须传入参数",
    "reason": "",
    "badExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <mark class=\"eslint-error\" data-tip=\"Expected Symbol to have a description.<br/><span class='eslint-error-rule-id'>eslint(symbol-description)</span>\"><span class=\"token function\">Symbol</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>",
    "goodExample": "<span class=\"token keyword\">const</span> foo <span class=\"token operator\">=</span> <span class=\"token function\">Symbol</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "use-isnan": {
    "name": "use-isnan",
    "value": "error",
    "description": "必须使用 isNaN(foo) 而不是 foo === NaN",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Use the isNaN function to compare with NaN.<br/><span class='eslint-error-rule-id'>eslint(use-isnan)</span>\">foo <span class=\"token operator\">===</span> <span class=\"token number\">NaN</span></mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">isNaN</span><span class=\"token punctuation\">(</span>foo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "valid-typeof": {
    "name": "valid-typeof",
    "value": "error",
    "description": "typeof 表达式比较的对象必须是 'undefined', 'object', 'boolean', 'number', 'string', 'function', 'symbol', 或 'bigint'",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> foo <span class=\"token operator\">===</span> <span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Invalid typeof comparison value.<br/><span class='eslint-error-rule-id'>eslint(valid-typeof)</span>\">'numbe'</mark></span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">typeof</span> foo <span class=\"token operator\">===</span> <span class=\"token string\">'number'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "vars-on-top": {
    "name": "vars-on-top",
    "value": "off",
    "description": "var 必须在作用域的最前面",
    "reason": "",
    "badExample": "",
    "goodExample": "",
    "fixable": false,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  },
  "yoda": {
    "name": "yoda",
    "value": ["error", "never", { "onlyEquality": true }],
    "description": "必须使用 if (foo === 5) 而不是 if (5 === foo)",
    "reason": "",
    "badExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><mark class=\"eslint-error\" data-tip=\"Expected literal to be on the right side of ===.<br/><span class='eslint-error-rule-id'>eslint(yoda)</span>\"><span class=\"token number\">1</span> <span class=\"token operator\">===</span> foo</mark><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "goodExample": "<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>foo <span class=\"token operator\">===</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span> <span class=\"token operator\">&lt;</span> foo<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span> <span class=\"token operator\">&lt;</span> foo <span class=\"token operator\">&amp;&amp;</span> foo <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span>",
    "fixable": true,
    "extendsBaseRule": "",
    "requiresTypeChecking": false
  }
}
