typescript中为了使编写的代码更规范,更有利于维护,增加了类型检验,写ts代码必须指定类型

typescript数据类型

  • 布尔类型(boolean)
  • 数字类型(number)
  • 字符串类型(string)
  • 数组类型(Array)
  • 元组类型(tuple)
  • 枚举类型(enum)
  • 任意类型(any)
  • null和undefined
  • void类型
  • never类型
  • 布尔类型

1
2
3
4
5
var flag: boolean = true;
// flag=123 错误写法
flag = false

console.log(flag)

//数字类型

1
2
var num: number = 123;
console.log(num);

字符串类型

1
2
3
4
var str: string = 'this is ts';

str = "lalala";
console.log(str);

数组类型

1
2
3
4
5
6
7
8
9
10
11
12
13
//数组 ts中定义数组有两种方式

//1.第一种
// var arr=['1','2']; //es5定义数组
var arr: number[] = [11, 22, 443];
console.log(arr);

//第二种
var arr1: Array<number> = [11, 33, 523]
console.log(arr1);

//第三种
var arr4:any[]=['123213',22,true];

元组类型(tuple) 属于数组的一种

1
2
3
let arr3: [number, string] = [123, '4232'];

console.log(arr3);

//枚举类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
enum Flag {
success,
error
}

let f: Flag = Flag.error
console.log(f);

enum Color {
blue, red = 3, 'orange'
}

var c: Color = Color.blue;
console.log(c); //0 如果标识符没有赋值 它的值就是下标

enum Err {
'undefined' = -1, 'null' = -2,
'success' = 1
}

var e: Err = Err.success
console.log(e)

任意类型

1
2
3
4
var num1: any = 123;
num1 = 'str';
num1 = true;
console.log(num1)

任意类型的用途

1
2
var oBox: any = document.getElementById('box');
oBox.style.color = 'red';

null 和undefined 其他(never类型)数据类型的子类型

1
2
3
4
5
6
7
8
var num3: undefined;// console.log(num3);  //正确

var num3:number |undefined; //定义没有赋值就是undefined
num3=123
console.log(num3)

var num2:null;
num2=null;

一个元素可能是number类型 可能是null 可能是undefined

1
2
3
var num2: number | null | undefined;
num2 = 1234;
console.log(num)

void 类型:typescript中的void表示没有任何类型,一般用于定义方法的时候没有返回值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// es5的写法
function run() {
console.log("run")
}
run();

//表示方法没有返回任何类型
function run():void {
console.log("run")
}
run();

//正确写法
function run(): number {
console.log("run")
return 123
}

run();

never类型:

是其他类型(包括null和undefined)的子类型,代表从不会出现的值,这意味着声明never只能被never类型所赋值
1
2
3
4
5
6
7
8
9
10
11
12
13
var a: undefined;
a = undefined //正确

var b: null;
// b=undefined 报错
b = null; //正确



var abc:never;
abc=(()=>{
throw new Error('错误')
})()