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 = 值;