選單
×
   ❮   
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 型別斷言


在處理型別時,有時需要覆蓋變數的型別,例如當庫提供了不正確的型別時。

型別斷言是覆蓋型別的一種過程。


使用 as 進行型別斷言

斷言變數的一種直接方法是使用 as 關鍵字,它將直接更改給定變數的型別。

示例

let x: unknown = 'hello';
console.log((x as string).length);
自己動手試一試 »

型別斷言實際上不會改變變數中的資料型別,例如,以下程式碼將無法按預期工作,因為變數 x 仍然是一個數字。

let x: unknown = 4;
console.log((x as string).length); // 列印 undefined,因為數字沒有 length 屬性

TypeScript 仍然會嘗試對斷言進行型別檢查,以防止出現看似不正確的斷言,例如,以下程式碼將丟擲型別錯誤,因為 TypeScript 知道將字串斷言為數字是沒有意義的,除非進行資料轉換。

console.log((4 as string).length); // 錯誤:型別“number”到型別“string”的轉換可能是一個錯誤,因為兩種型別沒有足夠的重疊。如果這是故意的,請先將表示式轉換為“unknown”。
下方的“強制斷言”部分將介紹如何覆蓋此限制。


使用 <> 進行型別斷言

使用 <> 進行型別斷言與使用 as 的效果相同。

示例

let x: unknown = 'hello';
console.log((<string>x).length);
自己動手試一試 »

此型別的斷言在 TSX 中將不起作用,例如在處理 React 檔案時。


w3schools CERTIFIED . 2022

獲得認證!

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

$45 報名

強制斷言

要覆蓋 TypeScript 在進行型別斷言時可能丟擲的型別錯誤,請先將變數斷言為 unknown,然後再斷言為目標型別。

示例

let x = 'hello';
console.log(((x as unknown) as number).length); // x 實際上不是數字,所以這裡會返回 undefined
自己動手試一試 »

TypeScript 練習

透過練習來測試自己

練習

使用 as 關鍵字將“unknown”變數 myVar 斷言為字串。

let myVar: unknown = "Hello world!";
console.log(.length);

開始練習


×

聯絡銷售

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

報告錯誤

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

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

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