diff --git a/src/i18n/types.ts b/src/i18n/types.ts index dd357fc..d2848ff 100644 --- a/src/i18n/types.ts +++ b/src/i18n/types.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/consistent-type-definitions */ /* eslint-disable @typescript-eslint/no-namespace */ -import type { OmitIndexSignature, Primitive, Simplify } from 'type-fest'; +import type { Merge, OmitIndexSignature, Primitive, Simplify } from 'type-fest'; import type libuiTranslations from './translations/libui.json'; @@ -10,6 +10,12 @@ interface TranslationsLike { [key: string]: TranslationsLike | { [L in Language]?: string }; } +interface DefaultLanguageOptions { + en: true; + es: true; + fr: true; +} + export declare namespace UserConfig { interface LanguageOptions { [key: string]: boolean; @@ -17,11 +23,7 @@ export declare namespace UserConfig { interface Translations extends TranslationsLike {} } -export type LanguageOptions = UserConfig.LanguageOptions & { - en: true; - es: true; - fr: true; -}; +export type LanguageOptions = OmitIndexSignature>; export type Language = keyof { [L in keyof LanguageOptions as LanguageOptions[L] extends true ? L : never]: any };