Typescript入门:数据类型

88 阅读2分钟

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('错误')

})()