TypeScript / JavaScript forEach调用

时间:2015-06-20 01:33:32

标签: typescript

我无法理解这段代码:

stringsArray.forEach(s => {
    for (var name in validators) {
        console.log('"' + s + '" ' +
            (validators[name].isAcceptable(s) ?
                ' matches ' : ' doesnt match ') + name);
    }
});
特别是s => { ...部分是神秘的。看起来s被分配给每个循环中数组中的下一个字符串。但是=>部分是什么意思?我认为这与lambdas有关,但我没有关注。

1 个答案:

答案 0 :(得分:17)

是的,它是一个lambda(例如,类似于ECMAScript6和Ruby,以及其他一些语言。)

Array.prototype.forEach有三个参数element, index, array,因此s只是用于element的参数名称。

这就像在常规的ECMAScript5中写这个:

stringsArray.forEach(function(s) {
    for (var name in validators) {
        console.log('"' + s + '" ' +
            (validators[name].isAcceptable(s) ?
                ' matches ' : ' doesnt match ') + name);
    }
});

在上面的示例中,您没有显示整个代码,因此我认为validators只是一个普通对象{}

您提供的示例的语法实际上与ES6语法相同。

the TypeScript handbook

查看此示例

example