Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ESLintで命名規則のチェックをする(LT版)/eslint-naming-convention

 ESLintで命名規則のチェックをする(LT版)/eslint-naming-convention

本スライドの原案は以下です!
https://qiita.com/yamatai12/items/8d229f318a1a57b7af5e

naming-conventionを導入すればRvで命名規則に指摘されることもなくなりますし、命名規則を覚えなくても済むので便利だなと思いました

山根大生

May 19, 2024
Tweet

More Decks by 山根大生

Other Decks in Technology

Transcript

  1. ルールの例 '@typescript-eslint/naming-convention': [ 'error', // ①型エイリアスは接尾辞にType をつける { selector: 'typeAlias',

    format: ['PascalCase'], suffix: ['Type'], }, // TODO メソッドでもboolean を返す場合のルールを追加する // ②変数, 関数, 引数で返り値がboolean { selector: ['variable', 'function', 'parameter'], types: ['boolean'], format: ['PascalCase'],// prefix を除いたcase です 例)isDev → prefix でis が取られ、Dev が残る prefix: ['is', 'should', 'has', 'need'], //disabled とrequired は例外的にprefix を必要としない filter: { regex: 'disabled|required', match: false, }, }, // ③変数、関数、引数、メソッド, 引数 { selector: ['variable', 'function', 'parameter', 'method'], format: ['camelCase'], }, // ④プロパティ { selector: ['property'], format: ['camelCase', 'snake_case'], }, // ⑤定数 { selector: 'variable', format: ['camelCase', 'UPPER_CASE'], modifiers: ['const'], }, // ついでに追加しました { selector: 'class', format: ['PascalCase'], }, ] 6 / 11
  2. 変数,関数,引数で返り値がbooleanの時 { selector: ['variable', 'function', 'parameter'], types: ['boolean'], format: ['PascalCase'],//

    prefix を除いたcase です 例)isDev → prefix でis が取られ、Dev が残る prefix: ['is', 'should', 'has', 'need'], //disabled とrequired は例外的にprefix を必要としない filter: { regex: 'disabled|required', match: false, }, }, 8 / 11
  3. 課題2 関数型コンポーネント名をPascalCaseに指定でき なかった '@typescript-eslint/naming-convention': [ 'error', { selector: ['variable'], format:

    ['camelCase'], }, ~~~ ] eslint-plugin-reactのjsx-pascal-caseも適用すると以下の矛盾が起こる naming-convention→ コンポーネント名はcamelCase eslint-plugin-react/jsx-pascal-case→ コンポーネント名はPascalCase 10 / 11