1 前言
昨天在掘金上看到了一篇 TypeScript5,是的,TS 都更新到 5 了,我还没开始正式使用。为了赶上时代的潮流,我尝试在自己写的小项目中使用了 TS,然而,直接裂开……于是就有了这个系列,我准备攻克这门技术,并把所思所想记录下来。
我打开了 TS 英文文档,等一下,如果你要问我,为什么打开英文文档,我想说我也很懒想看中文文档,可是中文文档有两点弊端:
- 中文更新不及时
- 存在部分内容不翻译
- 有些内容翻译过来就变了味
作为一个前端程序员,在 Get Started 中我选择 TypeScript for JavaScript Programmers。 这一篇教程告诉我们一件事:JS 的语法 TS 全有,TS 比 JS 多了一层类型系统(Type System):
类型推断(Types by Interface)
类型定义(Defining Types)
类型组合(Composing Types)
- 类型联合(Unions)
- 泛型(Generics)
结构化类型系统(Structural Type System)
以上就是 TS 与 JS 主要不同的地方,也是 TS 的主要概念,我们一个一个看。
2 类型推断(Types by Interface)
Types by Interface,通过推断而产生类型。啥意思呢?就是你和平时写 JS 一样去写 TS 的变量声明和赋值,TS 会根据值的类型去推断你声明的变量属于什么类型。例如:
1 被赋值给变量 a
,1 属于基础类型中的 number 类型,因此显而易见的是,变量 a
的类型就是 number。
这里可能会产生一个疑问:TS 帮我们推断变量类型的意义是什么?为了让我们像静态语言那样,固定变