我想在我的项目中使用gts。
它有tslint.json "no-any": true
中的规则。该规则完全禁止在代码中的任何位置使用any
关键字。处理它的常见用例是什么功能可以接受任何类型。我知道我可以覆盖这个规则。但我想知道有人会如何处理这种情况,例如执行sql的函数接受不同类型的参数。是否有处理此案例的最佳做法?
唯一想到的是通过|
指定所有基元类型
param: string| number| Date;
但是,如果我要包装一些外部代码,例如我的功能中的mysql已经接受了any[]
。
我认为unknown
应该很好地覆盖大多数情况。 unknown
是any
更安全的替代品。基本的想法是你可以像unknown
一样给any
分配任何东西,但是与any
不同,你没有用unknown
做很多事情而没有明确的检查或输入断言可能是你想要的(详见here)。
您可能仍会遇到角落情况,其中unknown
不能仅仅取代any
(strictFunctionTypes
下具有函数约束的类型参数),但它通常应该起作用。