Существует ли конструктор foreach в TypeScript, подобный реализации С#?

Мне очень нравится использовать конструкцию foreach для "для циклов" на С#. Я считаю, что он очень чистый, эффективный и читаемый.

Есть ли подобная конструкция в TypeScript? Например, вместо этого:

setAuthorFilters(selectedAuthors)
{
    selectedAuthors.forEach(x => this.setAuthorFilter(x));
    this.updateUrl();        
}

setAuthorFilter(selectedAuthor)
{
    this.vm.SelectAuthors = this.vm.SelectAuthors.filter(x => x.id !== selectedAuthor.id);
    this.vm.PreviousSelectedAuthors = this.vm.CurrentSelectedAuthors.slice();
    this.vm.CurrentSelectedAuthors.push(selectedAuthor);
}

Я хотел бы сделать это:

setAuthorFilters(selectedAuthors)
{
    foreach(var selectedAuthor in selectedAuthors)
    {
        this.vm.SelectAuthors = this.vm.SelectAuthors.filter(x => x.id !== selectedAuthor.id);
        this.vm.PreviousSelectedAuthors = this.vm.CurrentSelectedAuthors.slice();
        this.vm.CurrentSelectedAuthors.push(selectedAuthor);
    }
    this.updateUrl();        
}

Ответы

Ответ 1

Да, for ... of

например.

for(let author of authors)
{ 
  ... 
}

Поскольку вы используете TypeScript, это также работает в IE. См. https://basarat.gitbooks.io/typescript/content/docs/for...of.html:

Для целей pre ES6 TypeScript будет генерировать стандарт для цикла (var я = 0; я < list.length; я ++).

В простом Javascript, поэтому без TypeScript, это не поддерживается в IE (source)

Обновление: для области видимости let больше похоже на С#, чем var. Обновлен пример.