typescript中的数据类型
布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(array)
元组类型(tuple)
枚举类型(enum)
任意类型(any)
null 和 undefined
void类型
never类型
基本数据定义语句:var 或 let都可,推荐使用let
var 变量名 :变量类型 = 初始值;
var a:string = "你好";
let a:string = "你好";
注意:string类型变量赋值时用 ‘ ’ 或者 " " 都可以,推荐统一使用 “ ”
注意:不可以一种类型的变量赋另一种类型的值,比如
let a:string = 10; //错误,不能给string类型赋munber类型的值
定义数组的三种方式及元组类型
- 第一种
let arr:number[] = [1,2,3,4,5];
let arr1:string[] = ["hello","world","ts"];
注意:数组一旦定义了类型,要求其成员类型都相同,比如:
let arr:number[] = [1,2,3,"tom"]; //错误
let arr:number[] = [1,2,3,4]; //正确
- 第二种
let arr:Array<number> = [1,2,3,4,5];
let arr1:Array<string> = ["java","js","ts"];
- 第三种,定义为any类型
let arr:any[] = [12,"李明","三年一班"];
- 元组类型(tuple),属于数组的一种
let arr:[number,string,string] = [12,"李明","三年一班"];
枚举类型
可以将中文或者字符串与基本数据类型绑定,相当于加了个注释,使用起来较为方便,格式如下:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数],
};
例如:
enum Color{//赋值
red = 0,
blue = 1,
yellow = 2
};
enum Color{red,blue,yellow}; //不赋值,默认采用其索引值,与上述结果相同
任意类型(any)
let a:any = 12; //此时a的值为12
a = "Tom"; //此时a为Tom
a = true; //此时a为true
any的用处:
let oBox = document.getElementById('box');
oBox.style.color = 'red'; //警报:oBox是Object
let oBox:Object = document.getElementById('box');
oBox.style.color = 'red'; //报错,Object不是基本类型
let oBox:any = document.getElementById('box');
oBox.style.color = 'red'; //正确
null 和 undefined
变量定义后,未赋值,为undefined
let a:num | undefined;
consolo.log(a);//正确,打印undefined
变量定义为null,则只能赋值null
let a:null;
a = null;//编译通过
若一个元素可能是多种类型中的一个,除了用any,还可用以下操作:
let a : num | null | undefined; //a可能是null或者num或者undefined
void类型
typescript中的void表示没有任何类型,一般用于方法定义的时候没有返回值
//ES5中的写法
function run(){
consolo.log('run');
}
run();//编译通过
//ES6写法,更规范了
function run() : void{//表示方法没有返回任何类型
consolo.log('run');
}
run();//编译通过
never类型
nerver类型是其他类型(包括null和undefined)的子类型,代表从不会出现的值,这意味着声明never的变量只能被never类型所赋值
var a:undefined;
a = undefined;//编译通过
var a:null;
a = null;//编译通过
var a:never;
a = 10; //错误
a = (() => {
throw new Error("错误");
})() //编译通过