我正在写一个函数,期望在SubNodeConfig
中只接收一个配置。请理解,我可以通过下面的操作使所有配置都是可选的,但我希望将其中一个设置为强制的,例如,可能使用非空Assert操作符!
。
export interface SubNodeConfig {
alphaConfig?: AlphaConfig;
betaConfig?: BetaConfig;
charlieConfig?: CharlieConfig;
deltaConfig?: DeltaConfig;
}
export interface MainNode {
id: number;
config: SubNodeConfig;
}
我打算使用它的上下文:
const getUpdated = (
originalNodes: MainNode[],
updatedConfig: SubNodeConfig
) => {
const updatedNodes= [...originalNodes];
updatedNodes[indexOfNodeToUpdate] = {
id: 123456,
config: updatedConfig,
};
return updatedNodes;
};
我也试着看了一下TypeScript utility docs,但是我可能错过了一些东西,谢谢。
1条答案
按热度按时间yyyllmsg1#
下面是一个将自索引mapped type与
Required
和Pick
实用程序类型结合使用的解决方案:Playground链接