Я пытаюсь создать оболочку для функции 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