- TyptScript是什么?
.简称TS,是JavaScript的超集(JS有的TS都有),为JS添加了类型系统、接口、枚举等一些高级功能。
由微软开发的编程语言,设计目标是开发大型应用。 - TS与JS比较
优势:
1.类型化思维方式,使开发变得更加严谨,提前发现错误,减少该bug时间。
2.类型系统提高了代码可读性,并使维护和重构代更加容易。
3.补充了接口、枚举等开发大型应用时JS缺失的功能。
4.vue3.0源码使用TS重写,所以说TS是一种趋势。
5.angular默认支持TS;react与TS完美结合,是很多大型项目的首选。 - TypeScript使用
第一步:安装nodejs和npm
第二步:通过npm安装TypeScript(npm i -g typescript)
检验typescript是否安装成功 tsc -v
tsc作用:负责将ts代码转为浏览器和nodejs识别的js代码;
- TypeScript变量与数据类型
let 变量名: 变量类型=值;
在TS中,为变量指定了类型,就只能给这个变量设置相同类型的值,否则会报错;
原有类型:
string、number、boolean、Array、null、undefined、symbol、Object
let aName: string=“哈哈”
let aName: number=18
let aName: boolean=true
let aName: undefined=undefined
let aName: null=null
let aName: number[]=[1,2,3] //数值数组
let aName: string[]=[‘1’,‘2’,‘3’] 、//字符数组
泛型数组
let aName: Array=[‘1’,‘2’,‘3’]
数组特点:元素类型 固定 长度不限制
新增类型:
tuple(元组)、enum(枚举)、any(任意类型)、never、void
元组:就是一个规定额元素数量和每个元素类型的"数组",而每个元素的类型,可以不同
语法:let 元组名: [类型1,类型2,类型3]=[值1,值2,值3]
let tup1: [string,number、boolean]=[‘讨厌’,18,true]
枚举:
enum 枚举名{
枚举项1=枚举值1,
枚举项2=枚举值2,
枚举项3=枚举值3,
}
enum Gender{
boy=1,
girl=2,
Unknow=3
}
使用枚举:
let userSex:GenDer.Boy;
any任意类型:any代表任意类型,一般在获取dom时使用(我们在接收用户输入或第三方代码库时,还不能确定会返回什么类型的值,此时也可以使用any类型)
示例:
let txtName: any=document.getElementById(“txt
N”)
void: 代表没有类型,一般用在无返回值的函数;
语法: function sayHi1(): string {
return “hi,你好呀~~”
}
let re1 sayHi1();
在TS中函数必须指定返回值的类型,遇到没有返回值的可以用void来指定
function sayHi2(): void{
console.log(“hi啥?~~”)
}
sayHi2()
never:代表不存在的值得类型,常用作为抛出异常或无限循环的函数返回类型
语法 function test1():never{
while(true){
}
}
function test2():never{
throw new Error(“嘻嘻哈哈”)
}
类型推断
概念:如果变量的声明和初始化是在同一行,可以省略变量类型的声明。
例:let age =18 此时变量age的类型会被推断为number
联合类型
概念:表示取值可以为多种类型中的一种
let 变量名:变量类型1 | 变量类型2 = 值;