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:823
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