[Day10] TS:什麼!Conditional Types 中還能建立型別?使用 infer 來實作 ReturnType 和 Parameters
今天會來說明 TypeScript 中內建 ReturnType
和 Parameters
的原始碼(像是上圖這樣),如果你已經可以輕鬆看懂,歡迎直接左轉去看我隊友們的精彩文章!
ReturnType 和 Parameters 的使用
一樣讓我們先來簡單了解 ReturnType 和 Parameters 這兩個 Utility Types 的使用。
ReturnType
ReturnType<T>
是 TypeScript 內建的 Utility Type,它能夠接受一個參數 T
,這個參數滿足「函式型別」的話(即,T 要是函式型別的子集合),則會回傳這個函式「回傳值的型別(return type)」;否則,就會回傳 any
。
來看一下官網提供的幾個範例:
type T1 = ReturnType<() => string>; // string
type T2 = ReturnType<(s: string) => number[]>; // number[]