[譯] TypeScript:擁有超能力的 JavaScript(下)

TypeScript:擁有超能力的 JavaScript(下)

歡迎回來,繼前文 [譯] TypeScript:擁有超能力的 JavaScript (上) 以後,本週帶來下篇。javascript

使用枚舉(enum)能夠更清晰地組合一組數據。html

下面咱們來看看如何構造一個枚舉類型:前端

你能夠經過下面的方法從枚舉中取值:java

但這樣返回的是這個值的整數索引,和數組同樣,枚舉類型的索引也是從 0 開始的。react

那咱們怎麼獲取到 "Indrek" 呢?android

注意看咱們怎麼獲取到字符串的值。ios

還有一個很好的例子是使用枚舉存儲應用的狀態。git

若是你想了解更多關於枚舉(enum)的知識,stackoverflow 上的這個回答 探討了更多關於枚舉的細節。程序員


假設咱們請求某個 API,獲取了一些數據。咱們老是指望成功獲取數據 — 但若是咱們沒法獲取到數據會怎樣呢?github

是時候返回 never 類型了,好比下面這種特殊使用場景:

注意咱們傳遞的 message 參數

咱們能夠在另外的方法中調用 error 方法(回調)

由於咱們推斷返回值的類型是 never,因此咱們聲明返回值的類型爲 never,而不是 void


  • null — 沒有任何值。
  • undefined — 變量被聲明瞭,但沒有賦值。

它們自己的類型用處不是很大。

默認狀況下 nullundefined 是全部類型的子類型。就是說你能夠把 nullundefined 賦值給 number 類型的變量。

圖片來自 stackoverflow

關於 nullundefined,Axel Rauschmayer 博士寫過 一篇很是棒的文章


類型斷言一般會發生在你清楚地知道一個實體具備比它現有類型更確切的類型。

它在運行時沒有影響,只會在編譯階段起做用。TypeScript 會假設你 — 程序員,已經進行了必要的檢查。

下面是一個簡單示例:

尖括號 <> 語法與 JSX 用法衝突,因此咱們只能使用 as 語法進行斷言。

關於類型斷言的更多內容

一些更酷的東西

如今 — 用 TypeScript 來構造些有趣的東西吧!📙

感謝閱讀,但願你有所收穫!

你能夠關注個人 Twitter


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索