在我们查阅Ramda的文档时, 常会见到一些"奇怪"的类型签名和用法:"奇怪"的类型签名: (Applicative f, Traversable t) => (a → f a) → t (f a)...语法::), 好吧, 这段类型没法简单地翻译成TypeScript, 因为:TypeScript 不支持将类型构造器作为类型参数.举个例子:type T = F;报错信息如下:Type...'F' is not generic.在类型签名中F是一个类型构造器, 既和Array一样的返回类型的类型.然而, TypeScript 里根本无法声明"一个类型参数为类型构造器".正如示例中type...T = F;中, 我们无法告诉TypeScript, 这里的F是一个类型构造器, 所以当将number传入F的时候, 就报错了.OK, 我们假设TypeScript 支持声明"一个类型参数为类型构造器...Ramda 要这么设计本文只聚焦于"是什么", 至于"为什么", 这个我们留到下一篇?.