[英]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.