typeScript 类型推论

什么是类型推论?

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

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

如下

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

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

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

如下

以及对象的类型推论

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

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

类型推论的最佳实践

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

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

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

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

相关推荐
小林ixn39 分钟前
你以为你懂 + 号?看完这篇 Bun + TS 实战,才发现以前全写错了
前端·javascript·typescript
晓杰'1 小时前
从0到1实现Balatro游戏后端(8):Skip Blind与Tag奖励机制设计与实现
后端·websocket·typescript·项目实战·nestjs·状态管理·游戏服务器
YHHLAI2 小时前
从零搭建一个 RESTful Todo 服务 —— Bun + TypeScript 全栈最小闭环
后端·typescript·restful
退休倒计时3 小时前
【每日一题】LeetCode 19. 删除链表的倒数第 N 个结点 TypeScript
leetcode·链表·typescript
Sammyyyyy3 小时前
月之暗面 Kimi Code 0.4.0 发布,终端 AI 编码助手全面采用 TypeScript,实现毫秒级启动
前端·javascript·人工智能·ai·typescript·servbay
昭昭颂桉a7 小时前
TypeScript 前端的必修课,从 JS 到 TS
开发语言·前端·javascript·typescript
俩毛豆7 小时前
HarmonyOS7开发者公开招募
typescript
退休倒计时1 天前
【每日一题】LeetCode 142. 环形链表 II TypeScript
算法·leetcode·链表·typescript
夕夕木各1 天前
探究 TypeScript 类型体操里的 Equal 和 IsAny
typescript·源码阅读
GuWenyue1 天前
10分钟搞定TodoList实战!从0搭建Bun+TS的RESTful接口服务
前端·typescript·bun