我正在使用tslint来整理我的打字本代码。我已经搜索了很长一段时间了,但无法找到使用类型记录编译器选项noImplicitAny与tslint中的以下配置之间存在哪些差异(如果有的话):
"no-inferrable-types": [true]
"typedef": [
true,
"property-declaration",
"variable-declaration",
// ... etc ...
]发布于 2020-02-25 15:58:11
差异是存在的,而且它们是相当大的。
当变量被识别为NoImplicite而不是直接键入时,任何变量都会抛出错误,例如:
let arr = []
arr.forEach(item => item) // Variable 'arr' implicitly has an 'any[]' type.(7005)
// but
[1,2,3].map(item => item) // OK在第二种情况下,没有声明项类型(就像在第一种类型中那样),但是TS编译器知道什么是item变量(必须用number调用Array<number>上的映射)
还有这样的代码:
let arr = []
arr.forEach((item: any) => item) // OK不会抛出错误。item类型为任意类型,但它是显式的,而不是含意型的。
在linter规则中,它们只是强制您添加类型定义,所以这个代码[1,2,3].map(item => item)将通过编译,但是linter将使其成为错误。
https://stackoverflow.com/questions/60338116
复制相似问题