Не, не рабоает
имхо здесь нужно избавиться от третьего параметра в generic’e, вместо этого типизировать коллбек на основе T: https://tsplay.dev/mqxpZN
Весело... Спасибо)
Я неправильно поставил вопрос. У меня нет доступа к переменным вот тип правильная ссылка
так а в чем проблема то? по ссылке ошибок нет никаких
Так, а если ты повсюду уберешь extends, все работает?
Ошибок нет, но они там зависимость имеют от аргументов, но задача сверху - пример. В реальном проекте в аргументах у меня нет аргумента с нужным типом
Возможно ты просто типу сужаешь, как в примере я тебе скинул
Тогда не понятно, какая у вас связь между этими типами вообще. Здесь 2 варианта: - Типы абсолютно друг от друга не зависят, тогда action — это просто отдельный независимый тип R - Типы зависимы, тогда action’у можно задать тип на основе T Пример, который вы прислали — надуманный, т.к. у AsyncThunk все аргументы generic’а не используются
Я делаю обёртку над extraReducers, и пытаюсь сделать так, чтобы основываясь над выходом createAsyncThunk получить информацию о state и о возвращаемым параметром, ибо мне для коллбека надо подтягивать в state и action payload правильного типа
Ну я по-прежнему не вижу препятствий для того, чтобы извлечь тип R из T. Тип AsyncThunk как выглядит у вас?
какая библиотека предоставляет AsyncThunk?
redux-toolkit
ну, технически мой подход работает, конечно, но соглашусь, что тип для извлечения R из T выглядит немного уродливо. https://stackblitz.com/edit/typescript-27bsyd?file=index.ts Над альтернативами надо подумать
Вообще кейс интересный, было бы прикольно разобраться в корне проблемы. Закинул вопрос на SO: https://stackoverflow.com/questions/76294709/why-cant-typescript-infer-generic-type-parameter-when-one-type-parameter-depend Если никто не ответит, заведу issue в typescript
.
Ответ дали, проблема уже была вынесена на общее обозрение, но была отклонена. Хотя решение он тоже дал))))
Вот так более явно чем Extract
это полное отключение, и это убирает баг
Как это потом поддерживать?..
нормально поддерживать
напиши глобальный тип, как предложили тут https://t.me/ts_cool/299189
Обсуждают сегодня