typescript - Cum pot genera dinamic tipuri pentru acțiunile Redux?
Încerc să creez acțiuni pentru Redux care să corespundă cu cererile de rețea. Deci, scopul meu este să am:
GET_USERS_STARTED
GET_USERS_COMPLETED
GET_USERS_ERRORED
ca posibile tipuri de acțiuni. În prezent, pot face asta cu:
export type reduxActions = typeof GET_USERS_STARTED | typeof GET_USERS_COMPLETED | typeof GET_USERS_ERRORED;
dar scopul meu este să folosesc puțină programare dinamică astfel încât să pot face ceva de genul:
function networkRequestable(str) {
return [ `${str}_STARTED`, `${str}_COMPLETED`, `${str}_ERRORED`];
}
export type reduxActions = networkRequestable(GET_USERS)
Și apoi componentele, reducerii etc. ar putea să se bazeze pe semnătura lui GET_USERS_STARTED, etc. fără a scrie manual tipurile pentru fiecare acțiune API care s-ar putea întâmpla.
M-am uitat la Interfețe și Verificări Personalizate de Securitate, dar cred că Interfețele sunt prea „deschise”, în timp ce verificările de securitate sunt doar la runtime pentru a forța tipurile existente.
Nu sunt sigur dacă există o modalitate de a face asta sau dacă doar mă gândesc la TypeScript greșit. Mulțumesc pentru orice îndrumare!