evenchange4 / react-intl.macro

Extract react-intl messages with babel-plugin-macros.
MIT License
37 stars 6 forks source link

Typescript definitions? #77

Open arvinsim opened 5 years ago

arvinsim commented 5 years ago

Any plans on adding typedefs for this library?

OlehDutchenko commented 4 years ago

must have!

lanwin commented 4 years ago

I guess putting this into your global types.d.ts would work.

declare module "react-intl.macro" {
  export * from "react-intl";
}
langpavel commented 4 years ago

I'm using only defineMesages from macro with this definition:

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 commented 4 years ago

EDIT. I have new definitions:

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

  export function defineMessages<
    K extends string | number,
    T extends readonly Record<K, MessageDescriptor> = readonly Record<K, MessageDescriptor>
  >(messages: T): T;

  export { FormattedMessage } from 'react-intl';
}