Typescript
它不是一门语言,是js的超集,它包含了目前的es5标准,也包含了未来的es6\7\8的标准
还提供了很多后端的功能,比如静态类型检查,接口,泛型等。
主要给js带来了强类型定义的实际功能,相当于在原生js上加了一层类型定义
它不能直接运行在浏览器,需要通过tsc编译成js
ts的编译器叫tsc,就像es6的编译器叫babel
扩展
- es3\es5目前支持所有浏览器
- es6=es2015,es7=es2016,es8=2017,目前浏览器不支持,需要转换
Typescript作用好处
可以提供静态类型检查,对IDE有友好提示,规范代码编写,在代码编译阶段就能及时发现错误
比如:最常见的加法运算,当我们传入字符串类型代码也能正常运行,只是结果变成了字符串拼接而不是加法运算,这就是js的缺点,如果有了Ts的存在,就会检查类型,如果不是数字类型就会报错
配置TS运行环境
通过npm安装 命令:npm install -g typescript
ts官方文档中强调,要使用let const 去声明变量,避免使用var关键字
理论基础
- TS变量:数字 字符串 数组 元组
- 联合枚举(enum)any unknown void never
- 类型适配(类型断言) 函数类型
- 泛型 class interface module
实际演示
基本数据类型
function add (num1: number, num2: number) =>{
}
let isTrue:boolean = true
let name:string = ""
数组
他们表示数组类型,并且数组里的元素都是数字
let list1:number[] = [1,2,3,4]
这种是泛型的写法
let list2:Array<number> = [1,2,3,4]
let list3:any[] = [1,'3', [1]]
元祖 tuple
元祖是,固定长度,固定类型,固定位置,的特殊数组
let list1:[number,string] = [1,'2']
联合类型 <|竖线写法>
只能保存定义好的数据类型,也就是或则算法二选其一
let