使用在 TypeScript 中的类型定义

Redux-Saga 自带了用于 TypeScript 的类型声明文件,在使用 TypeScript 时,了解 Redux-Saga 所定义的类型有助于在编写代码时书写有效的类型标注。这里对使用 Redux-Saga 时常用的类型进行列举。

  • ActionType,定义为 string | number | symbol,用于标记 Action 类型的类型。
  • Saga<Args extends any[] = any[]>,定义为 (...args: Args) => Iterator<any>,Saga 是一个接受一个数组作为参数,并返回一个迭代器的函数。
  • Predicate<T>,定义为 (arg: T) => boolean,用于使用在 Pattern 中的判定函数。
  • SubPattern<T>,定义为 Predicate<T> | StringableActionCreator | ActionType,用于标记每一个 Pattern 单元的类型。其中 StringableActionCreator 为可以生成 Action 并带有 toString() 方法的函数。
  • Pattern<T>,定义为 SubPattern<T> | SubPattern<T>[],用于 take 等函数的 Pattern 参数的类型。
  • Buffer<T>,能够存放指定内容类型的缓存类型。
  • Channel<T>,通道类型。
  • END,通道终止类型。
  • Task,派生 Saga 得到的任务类型。