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
应该可以很好地涵盖大多数情况。 unknown
比 any
更安全。基本思想是你可以像 any
一样将任何东西分配给 unknown
,但与 any
不同的是,如果没有显式检查或类型断言,你不能用 unknown
做很多事情,这可能是你想要什么(有关详细信息,请参阅 )。
您可能仍然会遇到 unknown
不能仅替换 any
的极端情况(想到 strictFunctionTypes
下具有函数约束的类型参数),但它通常应该可以工作。
我想在我的项目中使用 gts。
它有tslint.json "no-any": true
中的规则。该规则完全禁止在代码中的任何地方使用 any
关键字。处理函数的常见用例是什么,可以接受任何类型。我知道我可以覆盖此规则。但我想知道有人会如何处理这种情况。执行 sql 的函数接受不同类型的参数。是否有处理这种情况的最佳做法?
唯一想到的是通过|
param: string| number| Date;
但是如果我要包装一些外部代码怎么办,例如mysql 在我的函数中已经接受 any[]
.
我认为 unknown
应该可以很好地涵盖大多数情况。 unknown
比 any
更安全。基本思想是你可以像 any
一样将任何东西分配给 unknown
,但与 any
不同的是,如果没有显式检查或类型断言,你不能用 unknown
做很多事情,这可能是你想要什么(有关详细信息,请参阅
您可能仍然会遇到 unknown
不能仅替换 any
的极端情况(想到 strictFunctionTypes
下具有函数约束的类型参数),但它通常应该可以工作。