Estou estruturando um projeto com React usando Redux-Saga e TypeScript, porém me deparei com um problema de tipos que não estou conseguindo resolver.
Eu tenho um arquivo rootSaga.ts, que exporta meus sagas da seguinte forma:
export default function * rootSaga() {
return yield all((
takeLatest(SettingsTypes.Record, sagaRecordSettings)
));
}
Este arquivo está dando um erro 'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.
na linha deste return
. Eu tentei solucionar esse erro adicionando o tipo Generator
para o retorno da função rootSaga
:
export default function * rootSaga(): Generator {
Com isso eu consegui parar o erro neste arquivo, porém tenho outro arquivo que importa essa função para criar um SagaMiddleware
:
const sagaMiddleware = createSagaMiddleware(rootSaga);
E neste arquivo ele aponta o erro Type '() => Generator<unknown, any, unknown>' has no properties in common with type 'SagaMiddlewareOptions<object>'.
para o parâmetro rootSaga
passado para a função createSagaMiddleware
. E antes de incluir o tipo Generator
no rootSaga.ts, esse arquivo já apresentava um erro semelhante: Type '() => Generator<AllEffect<ForkEffect<never>>, any, unknown>' has no properties in common with type 'SagaMiddlewareOptions<object>'.
Até o momento não consegui encontrar uma solução para este problema seja relacionada aos tipos ou à alguma configuração do tsconfig.json. Preciso que a tipagem funcione sem erros para ambos os arquivos. Se alguém puder ajudar com isso por gentileza, agradeço imensamente!
Obs.: Caso seja pertinente eu compartilhar mais algum trecho do código, por favor avisem nos comentários.