Solución
solution.tsTypeScript
interface ServerConfig {
host?: string;
port?: number;
}
interface DeepConfig {
server: ServerConfig;
timeout: number;
}
export function deepMerge(base: DeepConfig, override: Partial<DeepConfig>): DeepConfig {
// Fusiona los dos objetos haciendo merge profundo manual con spread para la propiedad anidada server
// return {
// timeout: base.timeout,
// server: Object.assign({}, base.server),
// };
const { timeout, server: { ...server} } = base;
const overrideTimeout = override.timeout;
return {
server: {...server,...override.server},
timeout: overrideTimeout ?? timeout
}
}0respuestas