Skip to content

Commit

Permalink
Fix wrong type for LocaleMatcher ('best-fit' to 'best fit').
Browse files Browse the repository at this point in the history
In Typescript 4.2 type definitions for Intl API was updated (microsoft/TypeScript#41880).
Because of that we now have compile error when we try to compile vue-i18n in TS 4.2 RC.
The reason is our wrong type definition for "localeMatcher" and "formatMatcher" properties.
We had "best-fit" but it should be "best fit".

This was the error when we compile vue-i18n with Typescript 4.2 RC. Now it's fixed.:

    > npx typescript@4.2.1-rc -p types
    npx: installed 1 in 3.512s
    types/index.d.ts:26:13 - error TS2430: Interface 'SpecificDateTimeFormatOptions' incorrectly extends interface 'DateTimeFormatOptions'.
    Types of property 'localeMatcher' are incompatible.
        Type 'LocaleMatcher | undefined' is not assignable to type '"best fit" | "lookup" | undefined'.
        Type '"best-fit"' is not assignable to type '"best fit" | "lookup" | undefined'.

    26   interface SpecificDateTimeFormatOptions extends Intl.DateTimeFormatOptions {
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Found 1 error.
  • Loading branch information
Mariusz Pawelski committed Feb 16, 2021
1 parent 96f40ab commit 46b9529
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ declare namespace VueI18n {
interface LocaleMessages { [key: string]: LocaleMessageObject; }
type TranslateResult = string | LocaleMessages;

type LocaleMatcher = 'lookup' | 'best-fit';
type FormatMatcher = 'basic' | 'best-fit';
type LocaleMatcher = 'lookup' | 'best fit';
type FormatMatcher = 'basic' | 'best fit';

type DateTimeHumanReadable = 'long' | 'short' | 'narrow';
type DateTimeDigital = 'numeric' | '2-digit';
Expand Down

0 comments on commit 46b9529

Please sign in to comment.