“@@transducer/step”是什么意思?

What does '@@transducer/step' mean?

以下内容来自Ramda's type definitions:

type Transformer<A,B> = {
  '@@transducer/step': <I,R>(r: A, a: *) => R,
  '@@transducer/init': () => A,
  '@@transducer/result': (result: *) => B
}

declare function into<I,T,A:Array<T>,R>(accum: Transformer<I,R>, xf: (a: A) => R, input: A): R

这里的'@@transducer/*'是什么意思?我在文档中找不到关于此语法的任何信息。

这实际上不是关于流本身的特定内容。从 Flow 的角度来看,每个 '@@transducer/*' 项目只是一个字符串文字,给出对象中 属性 的名称。

这个 Flow 声明说 Transformer 是一个具有三个属性的对象,这些属性的名称是那些特定的字符串,值是那些函数类型。

Ramda 代码可能对 see an example of a value of that type 有帮助。你可以看到它只是一个对象,这三个键指向特定的功能。