# 1.基本类型
```
// 基本类型,类型:小写
let str: string = "hello";//字符串
let num: number = 123;//数字
let bool: boolean = true;//布尔
let any: any = "999";//任意类型
any = 123;
let nu: null = null;//null
let und: undefined = undefined;//underfined
```
# 2.数组类型
```
// 数组类型:
1.每一项是固定类型
//数组每一项必须都为数字
// 写法一:
let arr1: number[] = [1, 2, 3];
//写法二:Array:其实就是interface + 泛型:interface Array<T>{ }
let arr2: Array<number> = [1, 2, 3];
let arr3: string[] = ['1', '2', '3'];//每一项必须为字符串
2.可能存在多类型
let arr4: [number, string] = [1, "1"];//第一项为数字,第二项为字符串,一对一约束
let arr5: (string | number)[] = [1, "2"];//数字或字符串,不是一对一,或的关系
```
# 3.void
```
void类型:无返回值
//无返回值时:
function fun(a: number, b: number): void {
console.log(a + b);
}
//有返回值时:
function fun1(a: number, b: number): number {
return a + b;
}
```
# 4.对象类型
```
//一般写法,实际不推荐,开发中一般用interface去定义
//属性后面加 “ ? ”:意思是可有可无
let obj1: { name: string, age: number ,sex?:number} = {
name: '张三',
age: 15
}
```
# 5.给类型起别名
```
//写法:type 类型名称(一般建议首字母大写) = 类型
1.简单类型
type Mystr = string;//定义
let str:Mystr = "hello";//使用自定义类型
2.复杂类型
type MyArr = (number | string) [];//定义复杂的数组类型
let arr: MyArr = [1,"2",3];
3.函数类型注解
type Fn = (n1:number,n2:number) =>number ;
const add1 : Fn = (a,b)=>{return a+b }
```