Typescript lint 使用 "no-any" 声明任何类型的正确方法是什么:true

Typescript lint what's the proper way to declare any type with "no-any": true

我想在我的项目中使用 gts

它有tslint.json "no-any": true中的规则。该规则完全禁止在代码中的任何地方使用 any 关键字。处理函数的常见用例是什么,可以接受任何类型。我知道我可以覆盖此规则。但我想知道有人会如何处理这种情况。执行 sql 的函数接受不同类型的参数。是否有处理这种情况的最佳做法?

唯一想到的是通过|

指定所有基元类型
param: string| number| Date;

但是如果我要包装一些外部代码怎么办,例如mysql 在我的函数中已经接受 any[].

我认为 unknown 应该可以很好地涵盖大多数情况。 unknownany 更安全。基本思想是你可以像 any 一样将任何东西分配给 unknown,但与 any 不同的是,如果没有显式检查或类型断言,你不能用 unknown 做很多事情,这可能是你想要什么(有关详细信息,请参阅 )。

您可能仍然会遇到 unknown 不能仅替换 any 的极端情况(想到 strictFunctionTypes 下具有函数约束的类型参数),但它通常应该可以工作。