У меня есть флаг "noImplicitAny": true, в tsconfig.json и "@typescript-eslint/no-explicit-any": 2, для eslint, но они не улавливают такие вещи, как

type BadInterface {
  property: any
}

Есть ли какие-либо параметры конфигурации через tsconfig или eslint, чтобы отметить это? Подрядчики нашей команды используют any для множества свойств в интерфейсах, и я не могу найти способ предотвратить передачу команд tsc или eslint в рабочем процессе CI.

Чтобы быть полностью ясным, я хочу, чтобы что-то сообщало мне, когда кто-то использует тип any для ключа в интерфейсе или типе. Кажется, это нормально, когда TS выводит тип из any, но я хочу, чтобы он взорвался, когда кто-то пытается использовать any как тип в любом месте.

1
Chris Caldwell 22 Окт 2020 в 19:31

1 ответ

Лучший ответ

Я считаю, что вы можете использовать правило ban-types, чтобы предотвратить явное использование any.

Например:

"@typescript-eslint/ban-types": [
  2,
  {
    "types": {
      "any": "Don't use 'any' because it is unsafe",
    },
    "extendDefaults": true,
  }
}

Документы

1
SMHutch 22 Окт 2020 в 17:24