Codemirror中array.pop()!(object)语法的作用及JS等价写法
TypeScript语法含义与JavaScript等价写法
语法含义解释
这段代码里的!是TypeScript的非空断言操作符,作用是明确告诉TypeScript编译器:pending.pop()的返回值绝对不会是undefined或null,无需进行空值检查。
结合循环条件while (pending.length)来看,进入循环时pending数组必然不为空,所以pop()方法肯定能从数组末尾取出一个有效值(这里是可调用的函数),后面的(data.updates)就是把取出的函数立即执行,并传入data.updates作为参数。
整段代码的核心逻辑是:清空pending数组,依次执行数组中存储的所有函数,每个函数都传入data.updates参数。
JavaScript等价写法
JavaScript没有非空断言语法,且逻辑上循环已经保证了pop()不会返回undefined,所以直接去掉!即可:
while (pending.length) pending.pop()(data.updates)
内容的提问来源于stack exchange,提问作者Király István
相关产品推荐
相关产品推荐

