類型
聲明類型string表示字符串,而String表示String對象
null undefined 是所有類型的子類型
任意值
聲明一個變量為任意值any之后,對它的任何操作,返回的內容的類型都是任意值
變量如果在聲明的時候,未指定其類型,那么它會被識別為任意值類型
如果定義的時候沒有賦值,不管之后有沒有賦值,都會被推斷成 any 類型而完全不被類型檢查
給變量設置默認值且不設置類型,會觸發類型推論
聯合類型
當 TypeScript 不確定一個聯合類型的變量到底是哪個類型的時候,我們只能訪問此聯合類型的所有類型里共有的屬性或方法
接口
賦值的時候,變量的形狀必須和接口的形狀保持一致
可選屬性?
任意屬性[propName: string]: any
數組
數組的項中不允許出現其他的類型 any[]
函數的類型
在 TypeScript 的類型定義中,=> 用來表示函數的定義,左邊是輸入類型,需要用括號括起來,右邊是輸出類型。
let mySum: (x: number, y: number) => number = function (x: number, y: number): number {
return x + y;
};
可選參數 ?表示,可選參數后面不允許再出現必須參數了
function buildName(firstName: string, lastName?: string) {}
參數默認值 TypeScript 會將添加了默認值的參數識別為可選參數, 且不受可選參數后面不允許再出現必須參數了的限制
剩余參數 ...rest 為一個數組,可以聲明
function push(array: any[], ...items: any[]) {}
類型斷言
類型斷言的用法,在需要斷言的變量前加上
類型斷言不是類型轉換,斷言成一個聯合類型中不存在的類型是不允許的