選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP How to W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 特殊型別


TypeScript 具有可能不指向任何特定資料型別的特殊型別。


型別:any

any 是一個停用型別檢查並允許使用所有型別的型別。

下面的示例未使用 any,並且會引發錯誤

不使用 any 的示例

let u = true;
u = "string"; // Error: Type 'string' is not assignable to type 'boolean'.
Math.round(u); // Error: Argument of type 'boolean' is not assignable to parameter of type 'number'.
自己動手試一試 »

any 設定為特殊型別 any 會停用型別檢查

使用 any 的示例

let v: any = true;
v = "string"; // no error as it can be "any" type
Math.round(v); // no error as it can be "any" type
自己動手試一試 »

any 可以是繞過錯誤的一種有用方式,因為它停用了型別檢查,但 TypeScript 將無法提供型別安全性,並且依賴於型別資料的工具(如自動完成)將無法工作。記住,應“不惜一切代價”避免使用它……


型別:unknown

unknownany 的一個相似但更安全的選擇。

TypeScript 會阻止使用 unknown 型別,如下面的示例所示

let w: unknown = 1;
w = "string"; // no error
w = {
  runANonExistentMethod: () => {
    console.log("I think therefore I am");
  }
} as { runANonExistentMethod: () => void}
// 當我們不知道型別時,如何避免註釋掉的程式碼中的錯誤?
// w.runANonExistentMethod(); // Error: Object is of type 'unknown'.
if(typeof w === 'object' && w !== null) {
  (w as { runANonExistentMethod: Function }).runANonExistentMethod();
}
// 儘管我們必須多次進行型別斷言,但我們可以透過 if 語句進行檢查以確保我們的型別安全並進行更安全的型別斷言
自己動手試一試 »

將上面的示例與前面的 any 示例進行比較。

unknown 最適合用於你不知道資料型別的時。要稍後新增型別,你需要進行型別斷言。

型別斷言是當我們使用 "as" 關鍵字來說明屬性或變數是已斷言型別時。


w3schools CERTIFIED . 2022

獲得認證!

完成 TypeScript 模組,做練習,參加考試,成為 W3Schools 認證!!

$45 報名

型別:never

never 在定義時實際上會引發錯誤。

let x: never = true; // Error: Type 'boolean' is not assignable to type 'never'.
自己動手試一試 »

never 很少使用,尤其是單獨使用時,它的主要用途是在高階泛型中。


型別:undefined & null

undefinednull 是分別指向 JavaScript 原語 undefinednull 的型別。

let y: undefined = undefined;
let z: null = null;
自己動手試一試 »

除非在 tsconfig.json 檔案中啟用了 strictNullChecks,否則這些型別的用途不大。


TypeScript 練習

透過練習來測試自己

練習

建立一個空的“myVar”變數,並停用型別檢查

let myVar: ;
        

開始練習


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援