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

Typescript definitions?

Open arvinsim opened this issue 6 years ago • 4 comments
trafficstars

Any plans on adding typedefs for this library?

arvinsim avatar Apr 17 '19 03:04 arvinsim

must have!

OlehDutchenko avatar Aug 10 '19 07:08 OlehDutchenko

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

declare module "react-intl.macro" {
  export * from "react-intl";
}

lanwin avatar Oct 07 '19 10:10 lanwin

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 avatar Nov 21 '19 13:11 langpavel

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';
}

langpavel avatar Dec 25 '19 19:12 langpavel