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.字面量类型