react-intl.macro
react-intl.macro copied to clipboard
Typescript: allow defineMessages(... as const) syntax
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:

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;
}
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.
@evenchange4 Please, look at this. It will be really helpful to me. I don't want publish new fork. Thanks!
@evenchange4 please, can you merge?
@evenchange4 Can you review this, please?