Здесь есть три разных вопроса:
- Как правильно определить и использовать обобщенные c параметры в TS
- Как правильно определить и использовать тип
AppThunk
- Как можно вывести правильный тип возврата здесь
Прямо сейчас, ваш тип AppThunk
ожидает, что ему должен быть дан универсальный параметр c, ReturnType
. Итак, вы должны использовать его как AppThunk<TheActualReturnType>
- в данном случае что-то вроде AppThunk<Promise<void>>
, потому что вы на самом деле ничего не возвращаете из окончательного .then()
.
Мы обычно Рекомендуется, чтобы типу AppThunk
было присвоено значение по умолчанию для `ReturnType, так как многие thunks фактически ничего не возвращают, например:
export type AppThunk<ReturnType = void> = ThunkAction<
ReturnType,
RootState,
unknown,
Action<string>
>;
Таким образом, вы можете использовать его как AppThunk
, не имея чтобы указать тип возвращаемого значения.
И, наконец, ... с использованием AppThunk
, я не сразу думаю, что может определить тип возвращаемого значения здесь, потому что вы ' re , говорящий TS, какой тип этой функции.