TypeScript 教程
/ 簡單類型
簡單類型
類型分配
創(chuàng)建變量時,TypeScript 分配類型的主要方式有兩種:
- 顯式
- 隱式
在下面兩個例子中,firstName
都是 string
類型。
顯式類型
顯式 - 寫出類型:
let firstName: string = "Dylan";
顯式類型分配更易于閱讀,更具意圖性。
隱式類型
隱式 - TypeScript 將根據(jù)分配的值“猜測”類型:
let firstName = "Dylan";
注意:讓 TypeScript “猜測”一個值的類型稱為 infer(推斷)。
隱式賦值強(qiáng)制 TypeScript 推斷該值。
隱式類型分配更短,輸入更快,通常在開發(fā)和測試時使用。
類型分配錯誤
如果數(shù)據(jù)類型不匹配,TypeScript 將拋出錯誤。
實例
let firstName: string = "Dylan"; // string 類型 firstName = 33; // 嘗試將值重新分配為不同類型
隱式類型分配會使 firstName
作為 string
不那么明顯,但兩者都會拋出一個錯誤:
實例
let firstName = "Dylan"; // 推斷為 string 類型 firstName = 33; // 嘗試將值重新分配為不同類型
對于不匹配的類型,JavaScript 不會拋出錯誤。
無法推斷
TypeScript 可能并不總是能正確推斷出變量的類型。在這種情況下,它會將類型設(shè)置為 any
,這會禁用類型檢查。
實例
// 隱式的 any,因為 JSON.parse 不知道它返回的數(shù)據(jù)類型,所以它可以是“任何”東西... const json = JSON.parse("55"); // 大多數(shù)人期望 json 是對象,但在此例中,它也可以是字符串或數(shù)字 console.log(typeof json);
可以通過在 TypeScript 的項目 tsconfig.json 中啟用 noImplicitAny
選項來禁用此行為。這是一個用于自定義 TypeScript 的某些行為的 JSON 配置文件。
注意:您可能會看到像 Boolean
這樣的基本類型大寫。
boolean !== Boolean
在本教程中,只需知道使用小寫值,大寫值僅用于非常特定的情況。