typescript中为了编写规范,增加了类型校验。
1.布尔类型(boolean)
var flag:boolean = false;
2.数字类型(number)
var a:number = 123;
// a="string" // 错误写法
// a = false // 错误写法
a = 12.3 // 正确写法,number类型不区分整型和浮点型
console.log(a)
3.字符串类型(string)
var str:string = "this is ts" // ts包含es5和es6两种语言的写法
4.数组类型(array)
(1)第一种定义数组的方式:
let arr:number[] = [1,2,3,45,666] // 正确赋值
let arr:number[] = [1,2,3,45,666, 'eee'] // 错误赋值,number类型数组不能包含字符串
let arr:string[] = ["php", "js", "java"] // 建议用“”包裹
(2)第二种定义数组的方式
let arr:Array = [11,22,33,44,55]
let arr:Array = ["php", "js", "java"]
5.元组类型(tuple)属于数组类型的一种
let arr:[string,number,boolean] = ['ts', 3.18, true]
6.枚举类型(enum)
(1)enum Flag {success=1,error=-1}
var f:Flag = Flag.success
console.log(f) // 1
console.log(Flag.error) // -1
(2)enum Color {red,blue,orange}
a.如果没有赋值,默认值为其索引值
var c:Color = Color.blue
console.log(c) // 输出:1 blue索引为1
b.如果有的有值,则该属性值以它前一个属性值为基准
enum Color {red,blue=5,orange}
var c:Color = Color.red
console.log(c) // 输出:0
var c:Color = Color.orange
console.log(c) // 输出:6 以blue为基准
7.任意类型(any)
(1)var num:any=123;
num = "str"
num = true
console.log(num)
(2)任意类型的用途
var oBox:Object = document.getElementById('box');
oBox.style.color = 'red'; //此处会报错,不存在Object类型
改成any类型后正常编译
var oBox:any= document.getElementById('box');
8.null和undefined(never数据类型的子类型)
(1)undefined
var num:number;
console.log(num); // 输出 undefined 报错
改成
var num:undefined;
console.log(num) // 输出 undefined 正确
综合写法,定义没有赋值就是undefined
var num:number | undefined
console.log(num)
(2)null
var num:null;
num = 123; // 报错
num = null;
注:一个元素可能是number类型,可能是null,可能是undefined
var num:number | null | undefined;
num = 1234;
console.log(num);
9.void类型
void类型:typescript中的void表示没有任何类型,一般用于定义方法的时候方法没有返回值
(1)方法没有返回任何类型
function run():void{
console.log('run')
}
run();
(2)方法有返回值
function run():number{
return 123;
}
run();
10.never类型:用于没有被定义的那些类型
a=(()=>{
throw new Error('错误')
})()