如何防止在 TypeScript 类型和接口中使用 "any"

How to prevent "any" from being used in TypeScript types and interfaces

我在 tsconfig.json 中有 "noImplicitAny": true, 标志,并且 "@typescript-eslint/no-explicit-any": 2, 用于 eslint,但它们没有捕捉到诸如

之类的东西
type BadInterface {
  property: any
}

是否有任何配置选项可以通过 tsconfig 或 eslint 来标记?我们团队的承包商将 any 用于接口中的许多属性,我似乎无法找到一种方法来防止它在 CI 中传递 tsceslint 命令工作流程。

为了完全清楚,当有人使用类型 any 作为接口或类型上的键时,我想要一些东西让我知道。当 TS 从 any 推断类型时似乎没问题,但我希望它在有人试图在任何地方使用 any 作为类型时爆炸。

我相信您可以使用 ban-types 规则来防止显式使用 any

例如:

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

Docs