Typescript皮棉用“ no-any”声明任何类型的正确方法是什么:true

时间:2019-03-18 10:21:21

标签: typescript tslint gts

我想在项目中使用gts

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

唯一想到的是通过|

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

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

1 个答案:

答案 0 :(得分:2)

我认为unknown应该涵盖大多数情况。 unknownany的更安全替代方案。基本思想是您可以像unknown一样为any分配任何内容,但与any不同的是,如果没有显式检查或类型断言,unknown不能做很多事您想要的内容(有关详细信息,请参见here)。

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