首页 > 解决方案 > 如何指定 `SagaIterator` 效果返回类型

问题描述

我有一个SagaIterator如下:

function* myStringSagaIterator(): SagaIterator {
  /* Safely create and yield some effects */

  return 'done!';
}

然后我执行上面的,比如说,在另一个SagaIterator

function* runStuff(): SagaIterator {
  const result: number = yield call(myStringSagaIterator); // No error!
}

以上不会导致类型错误,即使myStringSagaIterator总是会返回string- 更好的是,总是会返回'done!'。这是因为SagaIterator在内部显式地将效果结果键入到any.

有什么方法可以使这种类型安全吗?

标签: typescriptredux-saga

解决方案


检查这个正在进行的线程,tldr;这是打字稿限制


推荐阅读