Как мне использовать Generi c в качестве параметра для другой функции Generi c, как loda sh groupBy? - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь создать оболочку для функции groupBy loda sh. Единственное отличие состоит в том, что я ожидаю, что функция будет обрабатывать неопределенные ответы.

const groupMessagesByDay = <Generic extends { createdAt: string }[]>(
  messages?: Generic
) => {
  if (!messages) return;
  return groupBy<Generic>(messages, (message) =>
    message.createdAt.slice(0, 10)
      //   ~~~~~~~~ TS2339: Property 'createdAt' does not exist on type 'Generic[keyof Generic]'
  );
};

однако TS жалуется на это

Я знаю, что могу решить мою проблему, используя groupBy напрямую без этой оболочки, но я хотел бы понять, почему сказать, что Generi c extends createAt это не решает.

Я не могу вынести также после groupBy, поскольку это заставит функцию возвращать Dictionary <\ unknown>, и не словарь <\ Generi c> ...

Спасибо!

Вот песочница для удобства, помогая мне :) https://codesandbox.io/s/vibrant-liskov-2mdok

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...