Ввод пользовательской функции реакции-редукса в Typescript - PullRequest
0 голосов
/ 01 сентября 2018

У меня большое, сложное приложение, которое я пытаюсь перенести в Typescript. У нас есть одно особое ограничение: мы используем createProvider и опцию storeKey для подключения наших контейнеров к хранилищу. Учитывая, что у нас к северу от 100 контейнеров, я создал вспомогательную функцию для автоматической передачи этой опции по умолчанию. Это довольно просто и работает, как и предсказывалось в обычном JS.

function connectToStore(mapStateToProps, mapDispatchToProps, mergeProps, options = {}) {
     const finalOpts = { ...options, storeKey: STORE_KEY };
     return connect(mapStateToProps, mapDispatchToProps || {}, mergeProps, finalOpts);
}

Как мне набрать эту функцию? Я посмотрел на кошмар, который является объявлениями типа для соединения, и мне интересно, есть ли способ избежать воспроизведения тех, которые использует оригинал. Конечно, должен быть более краткий подход. Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018
import { Connect } from "react-redux";

const connectToStore: Connect = (
  mapStateToProps,
  mapDispatchToProps,
  mergeProps,
  options = {}
) => {
  const finalOpts = { ...options, storeKey: STORE_KEY };
  return connect(
    mapStateToProps,
    mapDispatchToProps || {},
    mergeProps,
    finalOpts
  );
};
0 голосов
/ 01 сентября 2018

response-redux connect имеет много перегрузок, и некоторые из псевдонимов вспомогательного типа являются объединением нескольких альтернатив; Я предполагаю, что вам нужны только некоторые из этих случаев (например, только перегрузки с четырьмя параметрами). Если бы я был в вашей ситуации, я просто сделал бы копию connect и начал бы комментировать случаи, которые, как мне кажется, не относятся к connectToStore. Как только все вызовы на connectToStore успешно проверены, вы можете удалить закомментированные случаи.

...