typescript数据类型
typescript中除了es5中的string、boolean、number、array、null和undefined之外还多了元组类型tuple、枚举类型enum、任意类型any、void类型、never类型
typescript中增加了数据校验
定义typescript变量时必须指定变量类型,如:
ts中的布尔类型
var a:boolean=true即指定了变量a只能为布尔类型
ts中的数组类型
两种定义方式
1、var arr:number[]=[111,222,333];表示此数组的所有元素都必须是数字类型
,此时数组中不能有其它类型的数据
2、var arr:Array<number>=[11,22,33]此种写法也可
ts中的元组类型
(tuple)
var arr:[number,string]=[12,'is'],可以给数组中每一个位置指定一个类型
ts中的枚举类型
(enum)
- 使得计算机语言变得具有可读性,用于实现非数字字符简单易读,例如:
enum a:{success=1,error=2} let s:a=a.success console.log(s)
得到结果1 - 如果标识符没有赋值,那么它的值就是下标,如
enum color{bule,red,pink} let c:color=color.red console,log(c)
此时得到red的下标1 - 同时,如果其中某一个有值,那么后面的标识符的值再其上加一,如:
enum color{bule,red=3,pink} let c:color=color.pink console,log(c)
此时得到结果为4
ts中的任意类型
(any)
var num:any=123;num='str'
都可,此时类型可以为任意类型
ts中的null和undefined
属于其它类型
(never)的子类型
- undefined:
var num:number;num=123;console.log(num)
此时不会报错,但是如果num以定义未赋值则其值为undefined,var num:number;console.log(num)
会报错,
如果写成var num:undefined;console.log(num)
则不会报错 - null:
var num:null
此时num不能赋任何值 - 如果想要指定一个变量只能是
null,undefined,number
三种其中一种时可以写成
var num:number | null | undefined
此时如果对其赋值则,只能是数字类型 - never类型代表从不会出现的值,意味着never类型的变量只能被never类型赋值,如:
var a:undefined
此时a只能被赋值为undefined
var b:null
此时b只能被赋值为null
此类型基本不会用到
ts中的void
类型
表示没有任何类型,一般用于定义方法的时候方法没有返回值,如:
function run():void{console.log('abcd')}