1、typescript为了使编码更加规范,更有利于维护,增加了类型校验
写ts代码必须指定类型
1、基本类型
1、布尔值boolean
let isDone: boolean = false;2、数字numbber
不仅支持十进制和十六进制还支持二进制和八进制
let n10 : number = 1;
let n16 : number = 0x001;
let n2 : number = 0b001;
let n8 : number = 0o001;3、字符串string
let str:stirng = 'sunlike';4、数组Array []
//只能是number类型的
let list:number[] = [3,23,323,43];
// 也可以这么用
let list:Array<number> = [4,23,4324,,2434,];5、元组Tuple
表示一个一直元素数量和类型的数组
let x : [string,number] = ['12121',4343];6、枚举
enum status {
continue = 100,
ok=200,
bad = 400,
error= 500
}
status.ok;// 2007、Any
编译阶段不检查其数据类型
let anyType:any = '123';//初始化为一个字符串
anyType =124;// 赋值为一个数值8、Void
与any刚好相反,没有任何类型
//主要用来表示函数没有返回值
function say():void{
alert("My Name Is Sun");
}//对变量没啥用,只能给Null和undefined类型赋值
let unknow::void = undefined;9、Null和Undefined
两者的类型分别是Null和Undefined
默认情况下Null和Undefined是所有类型的子类型
10、Never
表示用不存在的值的类型
例如,never类型是那些总是会抛出异常的或者根本就不会有返回值的函数表达式或者箭头函数的返回值类型
没有任何类型是never的子类型
// 返回never的函数必须存在无法达到的终点
function error(msg:string):never{
throw new Error(msg);
}// 推断的返回值类型为never
function fail(){
return error('....')}
// 返回never的函数必须存在无法达到的终点
function infinite():never{
while(1){
}
}11、Object
// 非原始类型
2、类型断言
// 类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构
var s:any = '432432';
let sl:number = (<string>s).length;