Отключить правило верблюжьего регистра для идентификатора в конкретных интерфейсах

Я использую плагин @ typescript-eslint для добавления правил в свой код TypeScript с помощью eslint.

Одно из включенных мной правил - camelcase:

"@typescript-eslint/camelcase": ["error", { "properties": "always" }]

Это позволяет мне нормализовать имена переменных и интерфейсов.

Проблема в том, что стандартный формат JSON использует соглашение snake_case для обозначения своего идентификатора. Итак, все мои ответы на запросы API используют snake_case.

В этом случае я должен объявить интерфейсы с помощью snake_case следующим образом:

interface UserResponse {
  id: number
  dark_mode: boolean
  status_code: string
}

Итак, мой вопрос: есть ли способ отключить это правило для идентификатора, определенного в конечной ширине интерфейса Response? Итак, в моем UserResponse интерфейсе нет ошибок, связанных с ворсом.

@ typescript-eslint предоставляет интересный параметр разрешить отключение правила для определенных имен, соответствующих регулярному выражению:

/* @typescript-eslint/camelcase: ["error", {allow: ["Response$"]}] */

interface Foo_Bar_Response {
  ...
}

Здесь линтер не будет запускать формат snake_case из Foo_Bar_Response, потому что он заканчивается словом Response.

Но здесь он работает только для имени самого интерфейса, а не для имен этих дочерних идентификаторов.

Есть идеи, как мы можем заставить эту работу работать?


person johannchopin    schedule 08.04.2020    source источник


Ответы (1)


это закрытая проблема на github https://github.com/typescript-eslint/typescript-eslint/issues/2077 вы можете попробовать исправить в кодовой базе, что не рекомендуется. вы также можете попробовать отключить с помощью опций: на основе варианта использования переменных с камел-кодом или интерфейсов props вашего проекта https://eslint.org/docs/rules/camelcase

person Iago Barreto    schedule 25.07.2020