【发布时间】:2021-01-03 23:15:26
【问题描述】:
我被卡住了,我不知道当前是什么⸘workaround‽...
此问题在本期中描述:Microsoft/TypeScript/#1213...
我正在尝试实现Chain specification:
(我需要将一个类型传递给
ApType,以便在第 12 行(在下面的 sn-p 中)Apply不是硬编码,而是通用的也可以扩展类型来自任何IApply)
m['fantasy-land/chain'](f)
实现 Chain 规范的值也必须实现 Apply 规范。
a['fantasy-land/ap'](b)
我做了一个FunctorSimplex,然后由FunctorComplex 扩展,然后由Apply 扩展,但现在我想将Apply 扩展为Chain,它正在打破......
所以我需要它(下图和代码链接):
Permalink to the code snippet lines 11 to 22 in 7ff8b9c
export type ApType<A = unknown> = <B = unknown>(
ap: Apply<(val: A) => B>,
) => IApply<B>;
/* [...] */
export interface IApply<A = unknown> extends FunctorComplex<A> {
/** `Fantasy-land/ap :: Apply f => f a ~> f (a -> b) -> f b` */
ap: ApType<A>;
}
【问题讨论】:
-
与解决方案完全无关,但这可能是我在文本编辑器中见过的最炫的颜色和字体组合。
标签: typescript generics inheritance functional-programming apply