Closed kazupon closed 2 months ago
In Vue I18n v9, it has a different interface from the Composition API mode and Legacy API mode of the $t overloaded signature.
$t
Especially, $t signature in Legacy API mode has fewer overloaded signatures than in Composition API mode, as shown below:
$t(key: Path): TranslateResult;
$t(key: Path, locale: Locale): TranslateResult;
$t(key: Path, locale: Locale, list: unknown[]): TranslateResult;
$t(key: Path, locale: Locale, named: NamedValue): TranslateResult;
$t(key: Path, plural: number): TranslateResult;
$t(key: Path, plural: number, options: TranslateOptions): TranslateResult;
$t(key: Path, defaultMsg: string): TranslateResult;
$t(key: Path, defaultMsg: string, options: TranslateOptions): TranslateResult;
$t(key: Path, list: unknown[]): TranslateResult;
$t(key: Path, list: unknown[], plural: number): TranslateResult;
$t(key: Path, list: unknown[], defaultMsg: string): TranslateResult;
$t(key: Path, list: unknown[], options: TranslateOptions): TranslateResult;
$t(key: Path, named: Record<string, unknown>): TranslateResult;
$t(key: Path, named: NamedValue, plural: number): TranslateResult;
$t(key: Path, named: NamedValue, defaultMsg: string): TranslateResult;
$t(key: Path, named: NamedValue, options: TranslateOptions): TranslateResult;
Starting from v10, Legacy API mode can use the same $t overload signature as Composition API mode.
Reason: After that migration, when migrating to Composition API mode, we sometimes fall into a pitfall due to the different signature of $t.
396c9ab
View logs
feature (has breaking change)
In Vue I18n v9, it has a different interface from the Composition API mode and Legacy API mode of the
$t
overloaded signature.Especially,
$t
signature in Legacy API mode has fewer overloaded signatures than in Composition API mode, as shown below:$t
overloaded signatures$t(key: Path): TranslateResult;
$t(key: Path, locale: Locale): TranslateResult;
$t(key: Path, locale: Locale, list: unknown[]): TranslateResult;
$t(key: Path, locale: Locale, named: NamedValue): TranslateResult;
$t(key: Path, plural: number): TranslateResult;
$t(key: Path, plural: number, options: TranslateOptions): TranslateResult;
$t(key: Path, defaultMsg: string): TranslateResult;
$t(key: Path, defaultMsg: string, options: TranslateOptions): TranslateResult;
$t(key: Path, list: unknown[]): TranslateResult;
$t(key: Path, list: unknown[], plural: number): TranslateResult;
$t(key: Path, list: unknown[], defaultMsg: string): TranslateResult;
$t(key: Path, list: unknown[], options: TranslateOptions): TranslateResult;
$t(key: Path, named: Record<string, unknown>): TranslateResult;
$t(key: Path, named: NamedValue, plural: number): TranslateResult;
$t(key: Path, named: NamedValue, defaultMsg: string): TranslateResult;
$t(key: Path, named: NamedValue, options: TranslateOptions): TranslateResult;
Starting from v10, Legacy API mode can use the same
$t
overload signature as Composition API mode.Reason: After that migration, when migrating to Composition API mode, we sometimes fall into a pitfall due to the different signature of
$t
.