#typescript-generics
Вопрос:
Из библиотеки «типобезопасные действия» я, похоже, не могу передать информацию о типах в возвращаемый тип.
import { createAsyncAction, PayloadActionCreator } from "typesafe-actions";
interface RT<REQG, RESG, ERRG> {
request: PayloadActionCreator<string, REQG>;
success: PayloadActionCreator<string, RESG>;
failure: PayloadActionCreator<string, ERRG>;
}
//ERROR
const compilationError = <T1, T2, T3>(): RT<T1, T2, T3> => {
const action = createAsyncAction("REQAA", "RESAA", "ERRAA")<T1, T2, T3>();
return action; // T1 is not assigneable to undefined
};
//No error
const compilesFine = (): RT<"anyPayload", "anyPayload", "anyPayload"> => {
const action = createAsyncAction("REQAA", "RESAA", "ERRAA")<
"anyPayload",
"anyPayload",
"anyPayload"
>();
return action;
};
Комментарии:
1. Не прямой ответ на ваш вопрос, а способ сделать вашу жизнь намного проще: redux-toolkit.js.org/api/createAsyncThunk