在TypeScript中所包含的数据类型有以下几种:
number,string,boolean,void,Null 和 Undefined,any,array数组,Tuple元组,never,enum,object,bight与symbol,变量声明与解构,类型断言,type别名
其中,常见的有:number,string,boolean,void,Null 和 Undefined,any,数组,元组,never,enum,
1、number数值类型
let peopleNum : number;//定义了一个number类型的peopleNum变量,给它赋值时只能赋给number类型的值;
peopleNum = 20;//不会报错
peopleNum = "lalal";//会报错
//注意:和javascript一样,typescript的数值类型都是浮点数,可支持二进制、八进制、十进制和十六进制
2、string字符串类型
let peopleName:String;
peopleName = "张三";
let log = "我就是法外狂徒${peopleName}";
console.log(log)
3、Boolean布尔类型
let isPeople:boolean;//定义一个布尔类型的isPeople,只能赋值为true和false。
isPeople = true;//不会报错
isPeople = "是";//会报错
4、void空
function one():void{
return true//报错
return //不报错
return 123//报错
}
//函数规定了void后,要求返回值为空,或者不返回,(但是,如果你只写一个return,或者return一个undefined或者null,也不会报错,因为理论上来说null和undefined是所有类型的子集)
5、Null和undefined
所有类型都可以设置为null及undefined,因为理论上来说null和undefined是所有类型的子类型,never除外
6、any任意类型
let what:any = 4;//可以给what赋任意类型的值
waht = 111;
what = "hjsdfsdjkf";
what = true;
//都不会报错
注意:虽然看上去使用any十分方便,但是当一个变量设置了any类型后就相当于关闭了TS的类型检测,就无法使用 TypeScript 提供的大量的保护机制。
所以,尽量不要使用any。
7、array数组类型
//方式1 let 变量名:数据类型[]=[值1,值2,值3]
let arr1:number[]=[1,2,3]
//方式2 let 变量名:Array<数据类型>=[值1,值2,值3]
let arr2:Array<number>=[1,2,3]
//定义数组后,数组内的内容也要根据定义的数据类型来
8、Tuple元组
//一种对数组的更严格一些的数据格式
let arr:[string,number,boolean] = ["ggfsdj",10,true]//按照定义的类型,不会报错
arr = [10,11,true]//arr[0],不符合,会报错
//元组类型在使用的时候,数据的类型的位置和数据的个数,应该和在定义元组的时候的数据类型及位置应该是一致的
9、never表示没有值
never
类型表示的是那些永不存在的值的类型。 例如, never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never
类型,当它们被永不为真的类型保护所约束时。
never
类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never
的子类型或可以赋值给never
类型(除了never
本身之外)。 即使 null和undefined也不可以赋值给never
。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
10、enum枚举
适用于有限个数的属性值选择。
let people:{name:String,sex:'nan'|'nv'}
i={
name:'lrc',
sex:'nan'
}
//把所有可能的情况列出来,上边的内容转为枚举
enum gender{
man:1,
women:0
}
let people:{name:String,sex:gender}
i={
name:'lrc',
sex:gender.man
}
基本类型就先整这些,后续再搞后边的,菜狗告辞。