什么' @@ transducer / step'意思?

时间:2017-08-22 18:46:37

标签: flowtype ramda.js

以下内容来自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/*'在这里意味着什么?我无法在文档中找到有关此语法的任何内容。

1 个答案:

答案 0 :(得分:1)

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

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

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