• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

TypeScript最佳实践:是否使用noImplicitAny

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0716/8458.html 1190000019768261

我应该使用noImplicitAny TypeScript编译器标志吗?

noImplicitAny编译器选项所做的,基本上是将TypeScript从可选类型语言转换为强制类型检验语言。这使得TypeScript离JavaScript的超集稍微远了一些,因为简单的:

function logMe(x) {
  console.log(x);
}
// error TS7006: Parameter 'x' implicitly has an 'any' type.

也将报错——你必须明确声明x的类型为any:

function logMe(x: any) {
  console.log(x);
}
 // OK

这意味着,如果你要把现有的JS代码库迁移到TS,那除了更改文件扩展名,你还得做一些较复杂的东西。这还意味着,在编写代码时,您需要更多地关注类型,如果不指定类型,编译器就总是会「抱怨」。由于在实际情况中显式地声明any被认为是不好的实践,所以在开发过程的早期,您就需要分配正确的类型。如果没有显式的声明,这可能意味着「我太懒了,没有正确地注释这里的类型」。

这样子到底是好是坏是有很大争议的,社区在这个问题上似乎存在分歧。下面是一些业界领先的TypeScript项目,以及它们是否使用了noImplicitAny编译器标志:

Project Uses noImplicitAny
Angular YES
RxJS YES
VSCode NO
Babylon.js NO

接下来下面是我的观点:我们使用TypeScript,是因为类型提供了有意义的额外信息,可以作为文档、并在早期捕获错误。如果想在项目的代码中都享受这种益处,那就不应该只在某个地方添加类型——把它们添加到任何地方,就可以完成了。

否则你就有可能做出如下额外的思考:

“嗯,我应该在这里添加类型吗?我有点懒,但这很好,但我还有其他工作要做……「我们明天再做吧。」

因此,我的建议是将noImplicitAny设置为true

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!