本文主要讲解TypeScript的基本数据结构,主要包括JS基本数据类型以及TS特有的数据类型。
- JS基本数据类型: string、number、null、undefined、boolean、array
- TS特有的数据类型:tuple(元祖)、enum(枚举)、any、unknow、never
注意: node
不能直接执行ts文件,需要先将ts编译成js,然后再执行js
一、 string、number、null、undefined、boolean类型声明
- JS普通写法如下:
let myName = "zhangsan";
let count = 1;
let a = null;
let b = undefined;
let visiable = false;
- TS写法如下:
不能更改它们的变量类型,否则会直接报错
let myName: String = "zhangsan";
let count: Number = 1;
let a: null = null;
let b: undefined = undefined;
let visiable: boolean = false;
- 错误示范:
let myName: String = "zhangsan";
myName = true;//Error:Type 'true' is not assignable to type 'String'.
二、 array、tuple(元祖)
JS写法如下:
let arr = ['语文','数学']
TS声明数组有多种方式,具体如下:
(1)数组的数据类型一致
- Array<>:声明一个数组,数组类型为
<>
中定义的类型,比如:Array<string>
//声明一个数组,并且数组中的数据类型都是字符串
let arr:Array<string> = ['语文','数学']
let arrA:string[] = ['语文','数学']
//注意:数组这样写会报错
let arr:Array= ['语文','数学'] //error
- string[]:声明一个数组,数组类型为
[]
前定义的类型,比如number[]
let arr:string[] = ['a']
(2)数组的数据类型不一致
- 联合数据声明:比如
(string|number)[]
,声明一个数组,数组类型为字符串、数字。数组中数据的类型可以不随定义的类型位置的限定。
let arr:(string|number)[] = ['a',1]
let arrB:(string|number)[] = ['a',1,1,'b']
let arrC:(string|number)[] = [1,1,'b','c']
let arrC:(string|number)[] = [1,1]
//或者这样声明
let arrD: Array<string | number> = [1, 12, 'a']
(3)数组的数据类型任意
let arr:any[] = ['a',1,true,null]
//或者这样声明
let arrE:Array<any> = ['a',1,true,null]
(4)限制类型和长度的元祖数组
tuple(元祖):是固定数量的不同类型的元素的组合,比如[number, string]
。数组中数据的位置、类型以及个数必须要和声明的类型、声明类型的位置、声明类型的个数保持一致,否则就会报错。
let tupleArr: [number, string] = [1, '数学']
let tupleArrA: [number, string] = [1, '数学',1]//error
let tupleArrA: [number, string] = ['数学',1]//error