ts的数据类型,为了使编写的代码更规范,更有利于管理,增加了类型校验
一、字符串(string)
可以用单引号’ ’ 双引号 " " 或者反引号
let heroName:string = "安其拉"
二、数字类型(number)
let age:Number =18;
age = 18.9
age =-17
三、布尔值(Boolean)
true / false 不可以像js中用0、1代替
let isSingleDog:boolean = true;
isSingleDog =false
isSingleDog =1 //报错 Type 'number' is not assignable to type 'boolean'.
四、undefined 和 null 唯一的值
这两种类型除了本身,没有其他值
let undf:undefined = undefined;
let nl:null = null;
五.数组类型
定义一个数组,有两种方式:
1. let 数组名:类型[] =[值1,值2]
可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:
let list: number[] = [1, 2, 3];
2.let 数组名:Array<类型> =[值1,值2]
第二种方式是使用数组泛型,Array<元素类型>:
let list: Array<number> = [1, 2, 3];
特点:类型限制 长度不限
六.元组类型(Tuple)
元组类型是数组的一种,表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
let tup:[string,number,boolean]=['貂蝉',18,false]
tup=['吕布',20,true]
访问元组中元素和长度
console.log(tup[0])
console.log(tup.length)
特点:1规定元组长度 2.为每个元素规定类型
七、枚举类型
enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。
声明语法:
enum 枚举名{
枚举项1 =枚举值1
枚举项2 =枚举值2
}
枚举项一般用英文或者数字
枚举值用整型数字,可以默认枚举值,编译时 自动加上 0,1,2,。。。
//1创建枚举
enum Gender{
Boy = 1,
Girl = 2,
Unknow=3
}
console.log(Gender.Boy) //1
console.log(Gender.Girl)//2
console.log(Gender.Unknow)//3
//2使用枚举
let userSex:Gender =Gender.Boy
console.log(userSex)
if(userSex == Gender.Boy){
console.log('相等','是男的')
}else{
console.log('不是男的 ',userSex)
}
如果没有为元素赋值,默认情况下,从0开始为元素编号,也就是下标
enum Gender2{
Boy ,
Girl ,
Unknow
}
console.log(Gender2.Boy) //0
console.log(Gender2.Girl) //1
console.log(Gender2.Unknow)//2
八、任意类型
any 任意类型,一般在获取DOM对象时使用。接收用户输入,或者第三方代码库时,也可以使用any
九、void类型
没有类型,一般用在没有返回值的函数
十、never类型
never不存在的值的类型,一般用于抛出异常 或无限循环的 函数返回类型
never是ts中的底部类型,所有类型都是never类型的父类,所以never类型值可以赋给任意类型的变量
十一、类型推断
如果变量的声明和初始化时在同一行,可以省略变量类型的声明
let hero='sting'
hero=18 //报错,因为hero的类型被推断为string类型
十二、联合类型
表示取值可以为多种类型中的一种
语法声明: let 变量名:变量类型1 | 变量类型2 = 值
let dogName :string|null =prompt('请输入狗狗名称')
console.log('hello',dogName)