我有這樣的型別(在這種情況下,用戶將是自定義界面):
export type ArgumentTypes = string | number | boolean | user;
現在,我想要一種
export type ArgumentTypeNames = "string" | "number" | "boolean" | "user";
我試圖在自己周圍搜索一段時間,但我一直無法找到獲得這個名字的方法。我試圖這樣做,${ArgumentTypes}但沒有奏效。
我對高級型別(映射、條件等)很陌生,所以我希望能解釋一下答案或潛在的解決方案。
uj5u.com熱心網友回復:
AFAIK,從今天的 TypeScript 版本開始,如果沒有在程式中某處存在的stringto "string"、numberto"number"等的顯式映射,您將無法做到這一點。映射可能如下所示:
interface TypeMapping {
string: string;
number: number;
boolean: boolean;
user: user;
}
然而,并不是所有的都丟失了。您可以將此映射作為事實的來源,并從中派生其他型別:
type ArgumentTypeNames = keyof TypeMapping;
type ArgumentTypes = TypeMapping[ArgumentTypeNames];
試試看。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/407770.html
標籤:
上一篇:如何在ReduxToolkit中正確覆寫AsyncThunk的泛型
下一篇:將道具傳遞給組件時出現型別錯誤
