首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tslints“ty以至f”和类型记录编译器"noImplicitAny“之间有什么区别?

tslints“ty以至f”和类型记录编译器"noImplicitAny“之间有什么区别?
EN

Stack Overflow用户
提问于 2020-02-21 11:50:25
回答 1查看 150关注 0票数 0

我正在使用tslint来整理我的打字本代码。我已经搜索了很长一段时间了,但无法找到使用类型记录编译器选项noImplicitAny与tslint中的以下配置之间存在哪些差异(如果有的话):

代码语言:javascript
复制
"no-inferrable-types": [true]
"typedef": [
  true,
  "property-declaration",
  "variable-declaration",
  // ... etc ...
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-25 15:58:11

差异是存在的,而且它们是相当大的。

当变量被识别为NoImplicite而不是直接键入时,任何变量都会抛出错误,例如:

代码语言:javascript
复制
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>上的映射)

还有这样的代码:

代码语言:javascript
复制
let arr = []
arr.forEach((item: any) => item) // OK

不会抛出错误。item类型为任意类型,但它是显式的,而不是含意型的。

在linter规则中,它们只是强制您添加类型定义,所以这个代码[1,2,3].map(item => item)将通过编译,但是linter将使其成为错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60338116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档