
- TypeScript 基礎
- TypeScript - 首頁
- TypeScript - 路線圖
- TypeScript - 概述
- TypeScript - 環境設定
- TypeScript - 基本語法
- TypeScript 與 JavaScript
- TypeScript - 特性
- TypeScript - 變數
- TypeScript - let & const
- TypeScript - 運算子
- TypeScript 基本型別
- TypeScript - 型別
- TypeScript - 型別註解
- TypeScript - 型別推斷
- TypeScript - 數字
- TypeScript - 字串
- TypeScript - 布林值
- TypeScript - 陣列
- TypeScript - 元組
- TypeScript - 列舉
- TypeScript - any
- TypeScript - never
- TypeScript - 聯合型別
- TypeScript - 字面量型別
- TypeScript - 符號
- TypeScript - null 與 undefined
- TypeScript - 類型別名
- TypeScript 控制流
- TypeScript - 決策
- TypeScript - if 語句
- TypeScript - if else 語句
- TypeScript - 巢狀 if 語句
- TypeScript - switch 語句
- TypeScript - 迴圈
- TypeScript - for 迴圈
- TypeScript - while 迴圈
- TypeScript - do while 迴圈
- TypeScript 函式
- TypeScript - 函式
- TypeScript - 函式型別
- TypeScript - 可選引數
- TypeScript - 預設引數
- TypeScript - 匿名函式
- TypeScript - 函式構造器
- TypeScript - rest 引數
- TypeScript - 引數解構
- TypeScript - 箭頭函式
- TypeScript 介面
- TypeScript - 介面
- TypeScript - 擴充套件介面
- TypeScript 類與物件
- TypeScript - 類
- TypeScript - 物件
- TypeScript - 訪問修飾符
- TypeScript - 只讀屬性
- TypeScript - 繼承
- TypeScript - 靜態方法和屬性
- TypeScript - 抽象類
- TypeScript - 訪問器
- TypeScript - 鴨子型別
- TypeScript 高階型別
- TypeScript - 交叉型別
- TypeScript - 型別守衛
- TypeScript - 型別斷言
- TypeScript 型別操作
- TypeScript - 從型別建立型別
- TypeScript - Keyof 型別運算子
- TypeScript - Typeof 型別運算子
- TypeScript - 索引訪問型別
- TypeScript - 條件型別
- TypeScript - 對映型別
- TypeScript - 模板字面量型別
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型約束
- TypeScript - 泛型介面
- TypeScript - 泛型類
- TypeScript 其他
- TypeScript - 三斜線指令
- TypeScript - 名稱空間
- TypeScript - 模組
- TypeScript - 環境宣告
- TypeScript - 裝飾器
- TypeScript - 型別相容性
- TypeScript - Date 物件
- TypeScript - 迭代器和生成器
- TypeScript - Mixins
- TypeScript - 實用程式型別
- TypeScript - 裝箱和拆箱
- TypeScript - tsconfig.json
- 從 JavaScript 到 TypeScript
- TypeScript 有用資源
- TypeScript - 快速指南
- TypeScript - 有用資源
- TypeScript - 討論
TypeScript - 型別斷言
型別斷言是 TypeScript 中的一種機制,用於告知編譯器變數的型別。如果 TypeScript 發現賦值錯誤,我們可以使用型別斷言覆蓋型別。我們必須確定自己是正確的,因為當我們使用型別斷言時,賦值始終是合法的。如果不是,我們的程式可能無法正常工作。
型別斷言的功能類似於型別轉換,但與 C# 和 Java 不同,它不執行型別檢查或資料重新排列。型別轉換提供了執行時支援,而型別斷言不影響執行時。型別斷言僅僅是一個編譯時構造,用於向編譯器提供有關我們希望如何檢查程式碼的指示。
如何執行型別斷言?
型別斷言是 Typescript 中的一種技術,它告訴編譯器變數的型別。儘管型別斷言不會重新建立程式碼,但型別轉換會。您可以使用型別斷言告訴編譯器不要推斷值型別。我們使用型別斷言將變數從一種型別轉換為另一種型別,例如將 any 轉換為數字。要執行型別斷言,我們可以使用 "<>" 運算子或 "as" 運算子。型別轉換提供執行時支援,而型別斷言對執行時沒有影響。在 TypeScript 中執行型別斷言有三種方法,它們是
- 使用 as 運算子
- 使用 <> 運算子
- 使用物件
使用 as 運算子進行型別斷言
TypeScript 中的 as 關鍵字提供了一種顯示型別斷言的方法。
語法
let variable_any: any = 123 let variable_number: number = variable_any as number
在上面的語法中,我們對任何型別變數使用了 "as" 關鍵字進行型別斷言。
示例
let variable_unknown: unknown = "Tutorialspoint"; console.log("variable_unknown value is: ", variable_unknown); let variable_number: number = (variable_unknown as string).length; console.log("Length of variable_unknown: ", variable_number);
編譯後,它將生成以下 JavaScript 程式碼
var variable_unknown = "Tutorialspoint"; console.log("variable_unknown value is: ", variable_unknown); var variable_number = variable_unknown.length; console.log("Length of variable_unknown: ", variable_number);
輸出將是
variable_unknown value is: Tutorialspoint Length of variable_unknown: 14
使用 <> 運算子進行型別斷言
<> 運算子是另一種在 TypeScript 中執行型別斷言的方法。
語法
let variable_any: any = 123 let variable_number: number = <number> variable_any
在上面的語法中,我們對任何型別變數使用了 "<>" 運算子進行型別斷言。
示例
let my_number: unknown = 12345 console.log('my_number value is: ', my_number) let num: number = <number>my_number console.log('typeof num is: ', typeof num)
編譯後,它將生成以下 JavaScript 程式碼
var my_number = 12345; console.log('my_number value is: ', my_number); var num = my_number; console.log('typeof num is: ', typeof num);
輸出將是
my_number value is: 12345 typeof num is: number
使用物件進行型別斷言
物件是另一種執行型別斷言的方法,與 "as" 和 "<>" 運算子不同;物件可以一次用於多個型別斷言。
語法
interface info { name: string, value: string } let my_obj = <info> { name: 'ABC', value: 'abc'}
在上面的語法中,我們使用物件執行型別斷言。
示例
interface info { name: string value: string } let my_obj = <info>{} my_obj.name = 'Tutorialspoint' my_obj.value = 'typescript' console.log(my_obj)
編譯後,它將生成以下 JavaScript 程式碼
var my_obj = {}; my_obj.name = 'Tutorialspoint'; my_obj.value = 'typescript'; console.log(my_obj);
輸出將是
{ name: 'Tutorialspoint', value: 'typescript' }
廣告