# 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 }
```