当前位置: 代码网 > it编程>编程语言>Javascript > TypeScript使用noImplicitAny实战解析

TypeScript使用noImplicitAny实战解析

2024年05月15日 Javascript 我要评论
我应该使用noimplicitanytypescript编译器标志吗?noimplicitany编译器选项所做的,基本上是将typescript从可选类型语言转换为强制类型检验语言。这使得typesc

我应该使用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编译器标志:

projectuses noimplicitany
angularyes
rxjsyes
vscodeno
babylon.jsno

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

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

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

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

以上就是typescript使用noimplicitany实战解析的详细内容,更多关于typescript使用noimplicitany的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com