看到一个typescript方法,不能理解,看了编译结果,更不能理解了
发布于 7 年前 作者 wangchaoduo 3617 次浏览 来自 问答

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

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

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

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

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

8 回复

传进来的f是个函数

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

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

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

写这种代码的人该打

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

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

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

回到顶部