Function: mergeThemeConfig()
mergeThemeConfig<
T,U>(baseTheme:T,overrides:U): { [KeyType in string | number | symbol]: ({ [Key in string | number | symbol as Key extends keyof PickIndexSignature<U> ? never : Key]: PickIndexSignature<T>[Key] } & PickIndexSignature<U> & { [Key in string | number | symbol as Key extends keyof OmitIndexSignature<U> ? never : Key]: OmitIndexSignature<T>[Key] } & OmitIndexSignature<U>)[KeyType] }
Defined in: shared/types/themeConfig.ts:815
Merges theme overrides with base theme configuration using type-safe merging.
Type Parametersโ
Tโ
T extends ThemeConfig
Uโ
U extends ThemeOverride
Parametersโ
baseThemeโ
T
Base theme configuration
overridesโ
U
Theme overrides to apply
Returnsโ
{ [KeyType in string | number | symbol]: ({ [Key in string | number | symbol as Key extends keyof PickIndexSignature<U> ? never : Key]: PickIndexSignature<T>[Key] } & PickIndexSignature<U> & { [Key in string | number | symbol as Key extends keyof OmitIndexSignature<U> ? never : Key]: OmitIndexSignature<T>[Key] } & OmitIndexSignature<U>)[KeyType] }
Merged theme configuration with type-safe property resolution
Remarksโ
Uses type-fest's Merge utility to combine theme configurations with proper type safety. This provides better type inference than manual object spreading and ensures all properties are handled correctly.
Exampleโ
const baseTheme: ThemeConfig = getBaseTheme();
const overrides: ThemeOverride = {
    colors: { text: { primary: "#007bff" } },
    spacing: { lg: "20px" },
};
const mergedTheme = mergeThemeConfig(baseTheme, overrides);
// Result is fully typed with merged properties