簡體   English   中英

打字稿中的參數化聯合

[英]Parametric union in typescript

是否存在以參數方式指定聯合的通用方法? 我正在尋找一種通用的指定方式:

type U<K> = T<K1> | T<K2> | ... | T<Kn> // Where K === (K1 | ... | Kn)

注意 :我正在處理T<U | V> !== T<U> | T<V> T<U | V> !== T<U> | T<V> T<U | V> !== T<U> | T<V> (排序與#14107#16644相反

編輯 :當K是字符串文字的並集時,我發現了以下模式:

type U<K> = {[key in K]: T<key>}[K]

但如果我嘗試將其用作函數參數,則不能很好地使用類型推斷。

TypeScript 2.8提供了使用條件類型完成此分發的另一種方法。 發布公告中的一個例子:

type Foo<T> = T extends any ? T[] : never;

/**
 * Foo distributes on 'string | number' to the type
 *
 *    (string extends any ? string[] : never) |
 *    (number extends any ? number[] : never)
 * 
 * which boils down to
 *
 *    string[] | number[]
 */
type Bar = Foo<string | number>;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM