如何在TypeScript中使用typeof運算子?


在TypeScript中,typeof是最有用的運算子和關鍵字之一,用於檢查變數或識別符號的型別。然而,TypeScript是一種型別嚴格的語言。因此,我們在定義識別符號本身時需要定義變數或物件的型別。儘管如此,有時我們仍然需要檢查變數的型別。

例如,我們透過表單獲取使用者資料,並透過TypeScript處理它。然後,我們必須驗證資料並執行一些資料庫操作。此外,識別符號在TypeScript中可以具有多種型別。因此,使用typeof運算子,我們可以在初始化識別符號後檢查其型別。

語法

下面的語法演示瞭如何使用帶有識別符號的typeof運算子。

let type = typeof <variable>

引數

  • 變數 - 我們需要檢查其型別的識別符號。

返回值

它根據typeof運算子運算元的資料型別返回一個字串。

示例1

在這個例子中,我們使用了帶有字串、數字、布林值和未定義變數的typeof運算子。此外,我們還使用了包含null值的變數的typeof運算子。

在輸出中,我們可以看到它返回表示識別符號型別的字串。對於null_value1識別符號,typeof運算子返回object。

// Defining the variables of particular type and checking its type.
let str1: string = "TutorialsPoint";
console.log(typeof str1);
let num1: number = 32;
console.log(typeof num1);
let bool1: boolean = true;
console.log(typeof bool1);
let un_defined;
console.log(typeof un_defined);
let null_value1 = null;
console.log(typeof null_value1);

編譯後,它將生成以下JavaScript程式碼:

// Defining the variables of particular type and checking its type.
var str1 = "TutorialsPoint";
console.log(typeof str1);
var num1 = 32;
console.log(typeof num1);
var bool1 = true;
console.log(typeof bool1);
var un_defined;
console.log(typeof un_defined);
var null_value1 = null;
console.log(typeof null_value1);

輸出

以上程式碼將產生以下輸出:

string
number
boolean
undefined
object

示例2

在下面的例子中,我們建立了一個包含一些鍵值對的物件,一個返回數值的函式,以及一個包含不同值的數字陣列。

此外,我們還使用了typeof運算子來檢查所有型別的型別。typeof運算子對於物件返回“object”字串,對於函式返回“function”字串,對於陣列返回“object”字串,因為陣列是物件的例項。

// using the typeof operator with object, function, and array.
let demo_obj = {
   prop: "value",
};
console.log(typeof demo_obj);
function func() {
   let a = 10 + 20;
   return a;
}
console.log(typeof func);
let array: Array<number> = [4, 23, 212, 2123, 323, 3];
console.log(typeof array);

編譯後,它將生成以下JavaScript程式碼:

// using the typeof operator with object, function, and array.
var demo_obj = {
   prop: "value"
};
console.log(typeof demo_obj);
function func() {
   var a = 10 + 20;
   return a;
}
console.log(typeof func);
var array = [4, 23, 212, 2123, 323, 3];
console.log(typeof array);

輸出

以上程式碼將產生以下輸出:

object
function
object

示例3

在這個例子中,我們使用typeof運算子檢查了NaN關鍵字的型別,它返回“number”字串。負無窮大的型別也是數字。PI是Math類的屬性,包含數值。這就是為什麼typeof運算子對於Math.PI屬性返回“number”。

pow()是Math庫函式,用於獲取任何數字的冪。因此,typeof運算子對於Math.pow()方法返回“function”。

// using the typeof operator with NaN, infinity, library methods, and members.
let NaN_type = NaN;
console.log(typeof NaN_type);
let infi = -Infinity;
console.log(typeof infi);
let pI = Math.PI;
console.log(typeof pI);
let pow = Math.pow;
console.log(typeof pow);

編譯後,它將生成以下JavaScript程式碼:

// using the typeof operator with NaN, infinity, library methods, and members.
var NaN_type = NaN;
console.log(typeof NaN_type);
var infi = -Infinity;
console.log(typeof infi);
var pI = Math.PI;
console.log(typeof pI);
var pow = Math.pow;
console.log(typeof pow);

輸出

以上程式碼將產生以下輸出:

number
number
number
function

示例4

在這個例子中,我們使用typeof運算子獲取variable1的型別,並定義與variable1型別相同的variable2。此外,我們還使用類型別名來儲存variable3的型別。名為type1的型別包含variable3的型別,它是一個字串。

之後,我們使用type1來定義variable4的型別。在輸出中,使用者可以看到variable4的型別與variable3相同。

// defining the variable1 of type number
var variable1: number = 10;

// To define the variable2 as of same type variable1
let variable2: typeof variable1 = 20;
console.log(typeof variable2);

// variable3 of string type
var variable3: string = "Hello!";

// using the type alias to define the type of same type as variable3
type type1 = typeof variable3;

// defining the variable4 of type named type1
let variable4: type1 = "Hi";
console.log(typeof variable4);

編譯後,它將生成以下JavaScript程式碼:

// defining the variable1 of type number
var variable1 = 10;

// To define the variable2 as of same type variable1
var variable2 = 20;
console.log(typeof variable2);

// variable3 of string type
var variable3 = "Hello!";

// defining the variable4 of type named type1
var variable4 = "Hi";
console.log(typeof variable4);

輸出

以上程式碼將產生以下輸出:

number
string

在本教程中,我們學習瞭如何在TypeScript中使用typeof運算子。透過各種示例,我們瞭解了typeof運算子如何與不同的資料型別一起工作。如果我們使用建構函式建立數字、布林值或字串變數,則typeof運算子會將其型別返回為“object”。

更新於:2023年1月3日

858 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告