Как разрешить именовать свойства в camelCase в классах миксинах используя пакет @typescript-eslint

Для написания frontend используем Vue + TS и ESLint. Для соблюдения code style используем плагин @typescript-eslint.

Проблема заключается в том, пропсы пишутся в camelCase и при class style написании компонентов, они являются свойствами класса. А свойства в проекте принято писать в snake_case. Для файлов компонентов мы переопределили эти правила, но миксины имеют расширение .ts, а соответственно попадают под правила, не предназначенные для компонентов(.vue).

Возможно ли как-то решить эту проблему не добавляя использования camelCase в файлах .ts, что в дальнейшем потребует устного согласования именования свойств класса?


Ответы (1 шт):

Автор решения: Не быть рабом на Руси

Хороший вариант предложили в issue. Мне вариант очень понравился.

Идея заключается в том, чтобы именовать файлы с подрасширением(поправьте в комментарии если я не верно назвал нижеследующее) и в таком случае мы можем писать проще правила под файлы.

Пример:

Для классов-примесей используем расширение .mixin.ts.

files: ['*.mixin.ts'],
rules: {
  '@typescript-eslint/naming-convention': [
    'error',
    {
      selector: 'classProperty',
      format: ['snake_case', 'camelCase'],
    },
  ],
},
→ Ссылка