自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五個有用的TypeScript Typeof 運(yùn)算符的技巧

開發(fā) 前端
在JavaScript中,我們可以通過typeof運(yùn)算符獲取變量的類型,那么,你知道TypeScript中使用的typeof運(yùn)算符是什么嗎? 在今天文章中,我將介紹 typeof 操作符的 5 個常見應(yīng)用場景,您在以后的項目中可能會用到。

在JavaScript中,我們可以通過typeof運(yùn)算符獲取變量的類型,那么,你知道TypeScript中使用的typeof運(yùn)算符是什么嗎? 在今天文章中,我將介紹 typeof 操作符的 5 個常見應(yīng)用場景,您在以后的項目中可能會用到。

1、獲取對象的類型

圖片

man 對象是一個常規(guī)的 JavaScript 對象,在 TypeScript 中你可以使用 type 或 interface 來定義對象的類型。 通過這種對象類型,你可以使用 TypeScript 內(nèi)置的實用類型,例如 Partial、Required、Pick 或 Readonly,來處理對象類型以滿足不同的需求。

對于簡單的對象,這可能沒什么大不了的, 但對于嵌套層次較深的大型復(fù)雜對象,手動定義它們的類型可能會讓人頭疼。 要解決這個問題,可以使用 typeof 運(yùn)算符。

type Person = typeof man;
type Address = Person["address"];

與之前手動定義類型相比,使用 typeof 運(yùn)算符變得更加容易。 Person["address"] 是一種索引訪問類型,用于查找另一種類型(Person 類型)的特定屬性(地址)。

2. 獲取一個將所有枚舉鍵表示為字符串的類型

在 TypeScript 中,枚舉類型是被編譯成常規(guī) JavaScript 對象的特殊類型:

因此,您還可以對枚舉類型使用 typeof 運(yùn)算符。 但這通常沒有多大實際用處,在處理枚舉類型時,它通常與 keyof 運(yùn)算符結(jié)合使用:

圖片

3.獲取函數(shù)對象的類型

還有一個更常見的場景是你的工作中使用了typeof操作符。 獲取對應(yīng)的函數(shù)類型后,可以繼續(xù)使用TypeScript內(nèi)置的ReturnType和Parameters實用類型,分別獲取函數(shù)的返回值類型和參數(shù)類型。

圖片

4.獲取類對象的類型

既然,typeof操作符可以處理函數(shù)對象,那它也可以處理Class對象? 答案是肯定的。

圖片

在上面的代碼中,createPoint 是一個創(chuàng)建 Point 類實例的工廠函數(shù)。 通過typeof運(yùn)算符,可以獲得Point類對應(yīng)的構(gòu)造簽名,從而實現(xiàn)對應(yīng)的類型驗證。 在定義Constructor的參數(shù)類型時,如果不使用typeof運(yùn)算符,會出現(xiàn)如下錯誤信息:

圖片

5.獲得更精確的類型

在使用 typeof 運(yùn)算符時,如果你想得到更精確的類型,那么,你可以將它與 TypeScript 3.4 版本引入的 const 斷言結(jié)合起來。 這是按以下方式使用的。

圖片

從上圖可以看出,在使用了const斷言之后,再使用typeof操作符,我們可以得到更精確的類型。

以上就是我今天跟你分享的5個關(guān)于TypeScript Typeof 運(yùn)算符的技巧,希望你能從中學(xué)到新的東西,如果你覺得有幫助的話,請點贊我關(guān)注我,并將這篇文章分享給你的朋友,也許能夠幫助到他哦。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2025-02-24 11:16:20

2020-12-10 08:11:52

typeof instanceofJS

2021-07-12 15:35:56

JavaScript代碼運(yùn)算符

2022-05-30 09:44:11

TypeScriptJavaScript技巧

2014-08-14 10:12:45

SwiftNil Coalesc

2022-09-07 00:04:37

JavaScript運(yùn)算符技巧

2023-04-10 08:58:13

C#關(guān)系運(yùn)算符

2021-02-20 23:34:22

JavaScript運(yùn)算符開發(fā)

2009-08-11 15:51:08

C#運(yùn)算符算術(shù)運(yùn)算符

2009-11-26 11:12:07

PHP運(yùn)算符

2009-08-12 15:02:49

C#賦值運(yùn)算符簡單賦值運(yùn)算符

2009-08-12 15:20:18

C#賦值運(yùn)算符復(fù)合賦值運(yùn)算符

2010-01-19 15:30:44

VB.NET比較運(yùn)算符

2021-05-07 06:27:29

JavaScript運(yùn)算符開發(fā)

2025-03-05 09:37:03

2023-05-11 16:18:17

Angular開發(fā)RxJS

2024-02-26 15:17:20

2009-08-12 09:30:10

C#??運(yùn)算符

2016-10-14 14:04:34

JAVA語法main

2009-08-12 12:46:11

C#運(yùn)算符重載
點贊
收藏

51CTO技術(shù)棧公眾號