CNode

看到一个typescript方法,不能理解,看了编译结果,更不能理解了

问答
Wwangchaoduo发布于8 年前最后回复8 年前8 回复4162 浏览0 收藏

原来的是定义了这样一个方法:

let reactionScheduler: (fn: () => void) => void = f => f()

看了好久没看懂这个方法干哈用的,于是就拿去跑一下编译,结果出来的结果更是让我不能理解。 结果如下:

var reactionScheduler = function (f) { return f(); };

有没有大神给剖析一把上面的方法。 再一个问题是,定义这个方法的意义在哪里?

查看回复

回复 (8)

L
leeson8888#1·8 年前

的确,约束函数表达式的输入输出类型时添加了箭头,和ES6的箭头函数混淆了,完全没有代码的可读性了

I
im-here#2·8 年前

传进来的f是个函数

W
wangchaoduo#3·8 年前
引用 im-here传进来的f是个函数

@imhered 请问和直接执行f()相比,这样定义一个函数之后再去通过reactionScheduler(f)有什么好处吗

W
waitingsong#4·8 年前

let reactionScheduler: (fn: () => void) => fn() 这样能运行么

Y
yszou#5·8 年前

有没有好处,你还要去看 reactionScheduler 是怎么被使用的,而不是光盯着一行代码的定义看。

Z
zengming00#6·8 年前

写这种代码的人该打

Z
zhhb#7·8 年前

image.png 这块是对 函数 和 他的参数 f 约束的定义,可以用ts里面interface摘出来,这样写太蛋疼了 冒号+红框内的去掉也没影响,只是ts在检查错误的时候不知道有约束而已

D
dislido#8·8 年前

这代码让我想起了 const gte0 = o => 0 <= o;

参与回复
登录后即可参与回复。登录