簡體   English   中英

Map 與類型名稱的字符串文字聯合的聯合

[英]Map a union to a string literal union of the type names

我有這樣的類型(在這種情況下,用戶將是自定義界面):

export type ArgumentTypes = string | number | boolean | user;

現在,我想要一種

export type ArgumentTypeNames = "string" | "number" | "boolean" | "user";

我試圖在自己周圍搜索一段時間,但我一直無法找到獲得這個名字的方法。 我試圖做${ArgumentTypes}但這沒有用。

我對高級類型(映射、條件等)很陌生,所以我希望能解釋一下答案或潛在的解決方案。

AFAIK,從今天的 TypeScript 版本開始,如果沒有string"string"number"number"等的顯式映射,就無法做到這一點。存在於程序的某處。 映射可能如下所示:

interface TypeMapping {
  string: string;
  number: number;
  boolean: boolean;
  user: user;
}

然而,並不是所有的都丟失了。 您可以將此映射作為事實的來源,並從中派生其他類型:

type ArgumentTypeNames = keyof TypeMapping;
type ArgumentTypes = TypeMapping[ArgumentTypeNames];

試試看

暫無
暫無

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

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