реагировать-i18следовать реагировать-редукс и TypeScript - PullRequest
0 голосов
/ 05 июля 2018

Итак ... Мне нужно выполнить редукционное соединение переведенного компонента i18n с использованием TypeScript. Проблема в том, что типы сходят с ума!

interface Props extends InjectedTranslateProps {
  page: number;
}

interface StoreData {
  count: number;
}

const BookComponent = ({ page, count }: Props & StoreData) => {
...
}


const translatedComponent = translate(['books'])(BookComponent );

function mapStateToProps(state: Store): StoreData {
  return {
    count: state.count
  };
}

export default connect<StoreData, void, Props>(mapStateToProps)(translatedComponent);

Он вообще не хочет работать, и я получаю эту ошибку:

Argument of type 'ComponentClass<Pick<Props & InjectedTranslateProps, "page"> & TranslateHocProps>' is not assignable to parameter of type 'ComponentType<StoreData & DispatchProp<any> & Props>'.

Type 'ComponentClass<Pick<Props & InjectedTranslateProps, "page"> & TranslateHocProps>' is not assignable to type 'StatelessComponent<StoreData & DispatchProp<any> & Props>'.

Type 'ComponentClass<Pick<Props & InjectedTranslateProps, "page"> & TranslateHocProps>' provides no match for the signature '(props: StoreData & DispatchProp<any> & Props & { children?: ReactNode; }, context?: any): ReactElement<any> | null'.

const translatedForm: React.ComponentClass<Pick<Props & InjectedTranslateProps, "page"> & TranslateHocProps>

Но если я поменяю реквизит на любой, проблема исчезнет.

export default connect<StoreData, void, any>(mapStateToProps)(translatedComponent);
...