看到一个typescript方法,不能理解,看了编译结果,更不能理解了
原来的是定义了这样一个方法:
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
是怎么被使用的,而不是光盯着一行代码的定义看。
写这种代码的人该打
这块是对 函数 和 他的参数 f 约束的定义,可以用ts里面interface摘出来,这样写太蛋疼了 冒号+红框内的去掉也没影响,只是ts在检查错误的时候不知道有约束而已
的确,约束函数表达式的输入输出类型时添加了箭头,和ES6的箭头函数混淆了,完全没有代码的可读性了
这代码让我想起了
const gte0 = o => 0 <= o;