强类型的定义:规范我们的代码在编译的阶段就能发现错误,在原生JS的基础上加了一层类型定义。
好处:类型检查 从根源避免低级错误 解放劳动力
特点:1.类型推演和类型匹配 2.开发编译时报错 3.极大程度避免了低级错误 4.支持javascript最新特性
typescript的编译器叫做tsc
npm i --save-dev lite-server 用于开发环境的一个轻量级服务器
typescript类型
1.boolean 布尔类型
真假 处理逻辑判断
2. string 字符串类型
"xxx" 'xxx' `xxx` 反引号,可以创建一个字符串模板
3.number 整数型
对数字的定义只有一个很笼统的number来表示 既能表示整数,也能表示浮点数,正负数
4.array数组型
[] 数组中可以存放任意类型的数据 js数组的宽容度非常大,而JS也很好的继承了这一特点
let list :number[]=[1,2,3,4]
let list:Array<number>=[1,2,3,4]
let list=[1,2,3,4]
混合:let list=[1,'ddd']
let list:any[]=[1.'dss',true]
5.null 空类型
6.undefined 未经初始化的值 不存在 物质不存在
7.object 对象
9.tuple元组
let person1:[number,string]=[1,"xxx"]
固定类型,固定长度的数组
元组有BUG 使用push可以突破元组的长度
声明元组的时候一定要指明类型
10.never 让函数永远保持无法执行的状态
11.enum 枚举
enum color{red green blue}
真正的关键类型是数字
12.void 没有返回值的函数 不存在压根没有
13.any 任意类型
任意类型 动态类型
unkown 也是动态类型 不保证类型,但能保证类型安全
14.union组合类型
联合(组合)类型
let union :string|number
所谓的联合类型就是一个变量可以同时支持两个或几个不同类型支持的类型种类之间,使用|分隔
15.nullable可空类型
16.literal 预定义类型
字面量类型 是枚举类型的一个变种 字面量类型和联合类型可以一起使用