typeScript 类型推论

什么是类型推论?

类型推论是 TypeScript 中的一个特性,它允许开发人员不必显式地指定变量的类型。相反,开发人员可以根据变量的使用情况让 TypeScript 编译器自动推断出类型。例如,如果开发人员将一个字符串赋值给一个变量,则 TypeScript 会推断该变量的类型为字符串。

换句话说,由于类型推论的存在,有些时候,ts的类型注解是可以省略不写的,

如下

自动推断出变量age为number类型,当尝试为age赋值字符串1时,报错

发生类型推论一般有两种场景,

  1. 声明变量并初始化
  2. 决定函数返回值时
  3. 对象中省略属性类型注释

如下

以及对象的类型推论

在这三种情况下,ts的类型注解是可以不写的,如果不知道类型是什么,可以通过将鼠标放在变量名上,vscode会给与提示

但是不推荐,因为不利于阅读

类型推论的最佳实践

尽管类型推论可以提高开发效率和减少代码冗余,但是在某些情况下可能会导致代码难以理解和维护。因此,在使用类型推论时,我们应该遵循一些最佳实践:

对于复杂的类型,应该使用类型注释。尽管类型推论可以推断出简单的类型,但是对于复杂的类型(如数组、对象、函数等),使用类型注释可以使代码更加清晰易懂。

对于可能引起混淆的代码,应该使用类型注释。在某些情况下,类型推论可能会导致代码的含义变得模糊。在这种情况下,使用类型注释可以使代码更加清晰易懂。

在使用第三方库时,应该使用类型注释。第三方库的函数和对象可能具有复杂的类型和参数,因此使用类型注释可以使代码更加清晰易懂。

相关推荐
gis开发之家7 小时前
vue3直击架构痛点 依赖倒置与接口隔离——打造坚如磐石的插件与高阶组件(HOC)模式
javascript·架构·typescript·前端框架·vue3
冬枳7 小时前
基于OpenSeagragon封装的前端病理切片展示组件
前端·typescript
退休倒计时12 小时前
【每日一题】LeetCode 287. 寻找重复数 TypeScript
算法·leetcode·typescript
@@@@@@@@541 天前
JavaScript 的缺点与 TypeScript 的弥补
开发语言·javascript·typescript
用户0934077735142 天前
HarmonyOS WPS Open SDK 实践:最小打开闭环与 enableEdit 分支处理
typescript·harmonyos
柯克七七2 天前
我把 bug 修得太干净了,测试组以为这个模块本来就没问题
前端·javascript·typescript
退休倒计时2 天前
【每日一题】LeetCode 39. 组合总和 TypeScript
算法·leetcode·typescript
yyt3630458412 天前
KlineChartQuant Tooltip 高频交互 200FPS 性能优化完整复盘
前端·经验分享·性能优化·typescript·vue·交互·chrome devtools
用户0934077735143 天前
HarmonyOS WPS Open SDK 实践:办公审批附件「打开—编辑—回传」代码实现
typescript·harmonyos
Flynt3 天前
TypeScript 5.8 让我少踩了一个大坑,顺手再聊聊 --erasableSyntaxOnly
前端·javascript·typescript