我正在嘗試為以下簡化示例撰寫型別。
我怎么知道Container配置將來自component?
type Container = {
component: "A" | "B" | "C";
config: AConfig | BConfig | CConfig;
}
type App = {
containers: Container[];
}
我嘗試使用泛型,但是containersinApp不能有多種型別。
type Config = {
A: AConfig;
B: BConfig;
C: CConfig;
}
type Container<T extends keyof Config> = {
component: T;
config: Config[T];
}
type App<T> = {
containers: Container<T>[];
}
uj5u.com熱心網友回復:
您需要一個映射型別來迭代您的Config型別的鍵并創建配對。
type ConfigContainer = {
[K in keyof Config]: { component: K, config: Config[K] }
}[keyof Config]
這將創建一個物件型別,該物件型別具有所有可能的配對作為值,然后您通過它自己的鍵對該物件進行索引以將值型別作為聯合來獲取。
見游樂場
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449166.html
