From 722699bb4b453d838483b3e60011a5fa00f6d752 Mon Sep 17 00:00:00 2001 From: Karol Janyst Date: Thu, 23 Mar 2017 09:09:54 +0900 Subject: [PATCH] Simplify types --- react-intl/index.d.ts | 21 ++++++++++----------- react-intl/react-intl-tests.tsx | 15 ++------------- react-intl/tsconfig.json | 3 +-- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/react-intl/index.d.ts b/react-intl/index.d.ts index 26f45610a7..a137a83c4f 100644 --- a/react-intl/index.d.ts +++ b/react-intl/index.d.ts @@ -6,6 +6,10 @@ declare namespace ReactIntl { + interface Values { + [key: string]: string; + } + interface Locale { locale: string; fields?: { [key: string]: string }, @@ -61,20 +65,18 @@ declare namespace ReactIntl { formatRelative: (value: number, options?: FormattedRelative.PropsBase & { now?: any }) => string; formatNumber: (value: number, options?: FormattedNumber.PropsBase) => string; formatPlural: (value: number, options?: FormattedPlural.Base) => keyof FormattedPlural.PropsBase; - formatMessage: (messageDescriptor: FormattedMessage.MessageDescriptor, values?: any) => string; - formatHTMLMessage: (messageDescriptor: FormattedMessage.MessageDescriptor, values?: any) => string; - } - - interface InjectedConfig { + formatMessage: (messageDescriptor: FormattedMessage.MessageDescriptor, values?: Values) => string; + formatHTMLMessage: (messageDescriptor: FormattedMessage.MessageDescriptor, values?: Values) => string; locale: string; formats: any; messages: { [id: string]: string }; defaultLocale: string; defaultFormats: any; + now : () => number; } interface InjectedIntlProps { - intl: InjectedIntl & InjectedConfig & { now : () => number }; + intl: InjectedIntl; } namespace IntlComponent { @@ -103,7 +105,7 @@ declare namespace ReactIntl { class FormattedTime extends React.Component { } namespace FormattedRelative { - interface Base { + export interface PropsBase { /* * one of "second", "minute", "hour", "day", "month" or "year" */ @@ -113,9 +115,6 @@ declare namespace ReactIntl { */ style?: "best-fit" | "numeric"; format?: string; - } - - export interface PropsBase extends Base { updateInterval?: number; initialNow?: any; } @@ -135,7 +134,7 @@ declare namespace ReactIntl { } export interface Props extends MessageDescriptor { - values?: any; + values?: Values; tagName?: string; } } diff --git a/react-intl/react-intl-tests.tsx b/react-intl/react-intl-tests.tsx index d8e8ad9084..e063bf434b 100644 --- a/react-intl/react-intl-tests.tsx +++ b/react-intl/react-intl-tests.tsx @@ -58,22 +58,11 @@ const SomeFunctionalComponentWithIntl: React.ComponentClass ); }); -@injectIntl -class SomeDecoratedComponentWithIntl extends React.Component { - public render () { - const { - intl : { formatMessage } - } = this.props; - - return (
); - } -} - class SomeComponent extends React.Component { static propTypes: React.ValidationMap = { intl: intlShape.isRequired }; - public render(): React.ReactElement<{}> { + render(): React.ReactElement<{}> { const intl = this.props.intl; const formattedDate = intl.formatDate(new Date(), { format: "short" }); const formattedTime = intl.formatTime(new Date(), { format: "short" }); @@ -182,7 +171,7 @@ class SomeComponent extends React.Component = injectIntl(SomeComponent); class TestApp extends React.Component<{}, {}> { - public render(): React.ReactElement<{}> { + render(): React.ReactElement<{}> { const definedMessages = defineMessages({ "sup": { id: "sup", diff --git a/react-intl/tsconfig.json b/react-intl/tsconfig.json index 46cf01776a..efc84e3fd3 100644 --- a/react-intl/tsconfig.json +++ b/react-intl/tsconfig.json @@ -19,7 +19,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": true, - "experimentalDecorators": true + "forceConsistentCasingInFileNames": true } }