TS数据类型的理解

94 阅读1分钟

TS数据类型的理解

1.原始类型

number

let num: number = 1;

string

let str: string = "Hello";

boolean

let flag: boolean = true;
flag = false;

undefined

let und: undefined = undefined;

null

let nul: null = null;

void空

function fn(): void {
  return; //相当于return undefined
}

symbol用来对象的key上,来表示每一个key都是独一无二的

let sym: symbol = Symbol(); 

2.非原始类型

object类型代表非原始类型

let arr:object = [1];
​
let obj:object = {a:1};

Object类型代表所有的原始类型和非原始类型

let arr2:Object=[1];
​
let obj2:Object={a:1};
​
let num2:Object = 1;

{}空对象类型和Object类型一样

let arr3:{}=[1];
​
let Obj3:{}={a:1};
​
let num3:{}=1;

3.数组

类型+方括号

let arr: number[] = [1, 2, 3];
​
arr.push(4);
​
// 数组方法的参数也会收到类型的限制
​
// arr.push("Hello");
​
// arr=["1"];

| 联合类型

这个例子中arr数组要么是number类型要么是string类型
​
let arr2: (number | string)[] = [1, "hello", "111"];

数组泛型

let arr3: Array<number> = [1, 2, 3];
​
let arr4: Array<number | string> = [1, "hello"];

4.元祖类型

有更加具体的类型提示

let personArr:[string,number]=["jojo",10];
​
// 数组第一项的名字。第二项是年龄// let personArr2:[string,number]=[10,"jojo"];// 数组第一项是名字,第二项是年龄

5.字面量类型