react-intl.macro icon indicating copy to clipboard operation
react-intl.macro copied to clipboard

Typescript: allow defineMessages(... as const) syntax

Open langpavel opened this issue 5 years ago • 4 comments
trafficstars

This PR fixes edge case with as const typescript type modifier like this:

import { defineMessages } from 'react-intl.macro';

const msg = defineMessages({
    name: { id: 'common.name', defaultMessage: 'Name' },
    surname: { id: 'common.surname', defaultMessage: 'Surname' },
} as const);

export default messages;

This is very useful in IDE, you can see id and defaultMessage by hovering prop: image

BTW I'm using this type definitions, I will add enhanced .d.ts to new PR

declare module 'react-intl.macro' {
    interface MessageDescriptor {
        readonly id: string;
        readonly defaultMessage: string;
        readonly description?: string;
    }

    interface Messages {
        readonly [K: string]: MessageDescriptor;
    }

    export function defineMessages<T extends Messages>(messages: T): T;
}

langpavel avatar Nov 22 '19 00:11 langpavel

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.93%. Comparing base (f528cc9) to head (f708a2b).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #104      +/-   ##
==========================================
+ Coverage   91.80%   91.93%   +0.13%     
==========================================
  Files           8        8              
  Lines          61       62       +1     
  Branches       10       11       +1     
==========================================
+ Hits           56       57       +1     
  Misses          5        5              

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Nov 22 '19 01:11 codecov[bot]

@evenchange4 Please, look at this. It will be really helpful to me. I don't want publish new fork. Thanks!

langpavel avatar Dec 25 '19 19:12 langpavel

@evenchange4 please, can you merge?

langpavel avatar Jun 30 '20 17:06 langpavel

@evenchange4 Can you review this, please?

langpavel avatar Mar 18 '21 00:03 langpavel