TypeScript?Typeof運(yùn)算符的5個(gè)實(shí)用技巧詳解
正文
在 JavaScript 中,你可以通過操作符獲取變量的類型typeof
,那么你知道typeof
TypeScript 中使用的是什么操作符嗎?在本文中,我將介紹 typeof 運(yùn)算符的 5 個(gè)常見應(yīng)用場(chǎng)景,你可能會(huì)在以后的項(xiàng)目中使用它們。
1.獲取對(duì)象的類型
對(duì)象是一個(gè)普通的man
JavaScript 對(duì)象,在 TypeScript 中你可以使用類型或接口來定義對(duì)象的類型。使用這種對(duì)象類型,您可以使用 TypeScript 的內(nèi)置實(shí)用程序類型,例如 Partial、Required、Pick 或 Readonly,來處理對(duì)象類型以滿足不同的需求。
對(duì)于簡(jiǎn)單的對(duì)象,這可能沒什么大不了的。但是對(duì)于嵌套層次更深的大型復(fù)雜對(duì)象,手動(dòng)定義它們的類型可能會(huì)讓人麻木。要解決這個(gè)問題,可以使用 typeof 運(yùn)算符。
type Person = typeof man; type Address = Person["address"];
與之前手動(dòng)定義類型相比,使用 typeof 運(yùn)算符變得容易得多。Person["address"]
是一種索引訪問類型,用于在另一種類型(Person 類型)上查找特定屬性(地址)。
2.獲取一個(gè)將所有枚舉鍵表示為字符串的類型
在 TypeScript 中,枚舉類型是編譯成常規(guī) JavaScript 對(duì)象的特殊類型:
因此,您也可以typeof
在枚舉類型上使用運(yùn)算符。但這通常沒有太大的實(shí)際用途,在處理枚舉類型時(shí),通常與keyof
運(yùn)算符結(jié)合使用:
3.獲取函數(shù)對(duì)象的類型
還有另一種更常見的場(chǎng)景,在您的工作中使用 typeof 運(yùn)算符。獲取到對(duì)應(yīng)的函數(shù)類型后,可以繼續(xù)使用TypeScript內(nèi)置的ReturnType和Parameters實(shí)用類型分別獲取函數(shù)的返回值類型和參數(shù)類型。
4.獲取類對(duì)象的類型
既然typeof
操作符可以處理函數(shù)對(duì)象,那么它可以處理Class對(duì)象嗎?答案是肯定的。
在上面的代碼中,createPoint
是一個(gè)創(chuàng)建 Point 類實(shí)例的工廠函數(shù)。通過typeof操作符可以獲取Point類對(duì)應(yīng)的構(gòu)造簽名,從而實(shí)現(xiàn)對(duì)應(yīng)的類型校驗(yàn)。在定義Constructor的參數(shù)類型時(shí),如果沒有使用typeof操作符,會(huì)出現(xiàn)如下錯(cuò)誤信息:
5. 獲得更精確的類型
在使用typeof
操作符的時(shí)候,如果你想得到更精確的類型,那么你可以將它與TypeScript 3.4 版本中引入的const 斷言結(jié)合起來。 這以以下方式使用。
從上圖可以看出,在使用了const assertion之后,再使用 typeof 操作符,我們可以得到更精確的類型。
以上就是TypeScript Typeof運(yùn)算符的5個(gè)實(shí)用技巧詳解的詳細(xì)內(nèi)容,更多關(guān)于TypeScript Typeof運(yùn)算符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
TypeScript創(chuàng)建一個(gè)簡(jiǎn)單Web應(yīng)用
這篇文章主要為大家介紹了TypeScript創(chuàng)建一個(gè)簡(jiǎn)單Web應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05H5頁面跳轉(zhuǎn)小程序的3種實(shí)現(xiàn)方式
這篇文章主要給大家介紹了關(guān)于H5頁面跳轉(zhuǎn)小程序的3種實(shí)現(xiàn)方式,說出來你可能不信,每位商家?guī)缀醵紩?huì)h5轉(zhuǎn)跳到小程序、H5轉(zhuǎn)跳至小程序的應(yīng)用范圍十分廣闊,需要的朋友可以參考下2023-08-08JavaScript和JQuery的鼠標(biāo)mouse事件冒泡處理
這篇文章主要介紹了JavaScript和JQuery的鼠標(biāo)mouse事件冒泡處理,本文總結(jié)出了mouse事件的一些定論,并分別給出了JavaScript和JQuery測(cè)試代碼,需要的朋友可以參考下2015-06-06javascript window.onerror事件學(xué)習(xí)新收獲
javascript window.onerror事件學(xué)習(xí)新收獲...2007-11-11layui內(nèi)置模塊layim發(fā)送圖片添加加載動(dòng)畫的方法
今天小編就為大家分享一篇layui內(nèi)置模塊layim發(fā)送圖片添加加載動(dòng)畫的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09