这是我参与「第四届青训营 」笔记创作活动的第13天
为什么是TypeScript
什么是TypeScript
TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的超集,具有可选的类型并可以编译为纯JavaScript。从技术上讲TypeScript就是具有静态类型的 JavaScript 。
TypeScript的特点
代码的可读性和可维护性,例如后端某个接口返回值,一般需要用network看或去看接口文档,才知道返回数据结构,如正确使用了ts后,编译器会提醒返回接口返回值的类型。
同时,能在编译阶段就能发现大部分错误,避免了很多线上bug
增强了编译器和IDE的功能,包括代码补全,接口提示,跳转到定义,重构等等
TypeScript定义
TypeScript源于JavaScript,JavaScript是动态类型的语言,TypeScript是静态类型的语言,但两者都是弱类型语言。动态类型是在执行阶段才能确定一个类型的匹配,而静态类型语言则会在执行前去完成这件事情。
对象数据类型
自定义类型一般首字母大写,表示这是一个类型,通过interface关键字来定义。类似于对象的定义方式,采用key-value来定义,其中通过关键字readonly设置只读属性,后续无法更改;?:表示该属性为可选属性,该属性可有可无,其余一般为必选类型;any表示任意属性。
基础类型
-
- 布尔值
- 数字
- 字符串
- 数组
- 元组(Tuple)
- 枚举
- Any
- Void
- Null 和 Undefined
- Never
- Object
- 类型断言
类型断言(Type Assertion)可以用来手动指定一个值的类型。
高级类型
- 交叉类型(Intersection Types)
- 联合类型(Union Types)
- 类型保护与区分类型(Type Guards and Differentiating Types)
- 可以为null的类型
- 类型别名
- 字符串字面量类型
- 数字字面量类型
- 枚举成员类型
- 可辨识联合(Discriminated Unions)
- 多态的 this类型
- 索引类型(Index types)
- 映射类型