Справочник API
Типы времени выполнения
Все публичные типы реэкспортируются для использования в проектах-потребителях:
import type {
// Плагин
I18nPluginOptions,
I18nPlugin, // тип возврата createVueI18nPlugin — Plugin & { service }
I18nService, // { locale, isLoading, setLocale, availableLocales, onLocaleChange, loadNamespace, isNamespaceLoaded }
// Типы записи локали
LocaleMessages, // Record<string, unknown>
LocaleEntry, // LocaleMessages | LocaleLoader | LocaleDefinition
LocaleDefinition, // { messages, meta? }
LocaleInfo, // { code, meta } — возвращается useAvailableLocales
// Формы возврата composables
UseLocaleReturn,
UseTReturn,
UseAvailableLocalesReturn,
UseFormatReturn,
UsePluralizeReturn,
UseNamespaceReturn,
// Плюрализация
PluralVars, // Record<string, string | number>
} from 'vue-i18n-kit'Что именно содержит каждая форма — см. страницы Настройка плагина, Сервис плагина и раздел Composables.
Типизация метаданных локали
Определите общепроектный интерфейс для формы вашего meta и передайте его как generic в оба composables:
// types/i18n.ts
export interface AppLocaleMeta {
display: string // человекочитаемое имя локали
flag?: string // эмодзи-флаг, опционально
author?: string // указание переводчика, опционально
}import type { AppLocaleMeta } from '@/types/i18n'
import { useLocale, useAvailableLocales } from 'vue-i18n-kit'
const { localeMeta } = useLocale<AppLocaleMeta>()
localeMeta.value?.display // string | undefined ✓
const { availableLocales } = useAvailableLocales<AppLocaleMeta>()
availableLocales.value[0].meta?.flag // string | undefined ✓Типы схемы конфига
I18nKitRules и I18nKitIgnore — типы, стоящие за полями rules и ignore в i18n-kit.config.json (см. Конфигурацию) — экспортируются как types-only сабпуть:
import type { I18nKitRules, I18nKitIgnore } from 'vue-i18n-kit/config'
const rules: I18nKitRules = {
warnOnHtmlTags: true,
lengthWarningFactor: 3,
}У vue-i18n-kit/config нет экспортов времени выполнения — импорт чего-либо кроме import type { ... } из него разрешается в пустой модуль.
I18nKitRules
Поля: interpolationPatterns?: string[], lengthWarningFactor?: number, warnOnHtmlTags?: boolean, warnOnIcuErrors?: boolean, warnOnDuplicateValues?: boolean, minValueLength?: number. Дефолты и поведение — см. Правила валидации.
I18nKitIgnore
Поля: prune?: string[], duplicates?: string[], unused?: string[], scanExclude?: string[]. Дефолты и поведение — см. Списки исключений.
I18nKitConfig
Полная форма i18n-kit.config.json — не экспортируется из vue-i18n-kit/config (включает Node-специфичные поля вроде integrations.viteConfigPath), задокументирована поле за полем на странице Конфигурация.