Есть ли оператор «все» или «любой» для логических списков в машинописи - PullRequest
1 голос
/ 19 февраля 2020

Я хочу написать оператор if в форме

if (all entries in booleanList are true) {do something}

Простое включение в booleanList эквивалентно .any ()

Я не мог найти ответ по inte rnet или в машинописной книге. Заранее спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 19 февраля 2020

Конечно, это every:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every

const list = [true, false, true];

const every = list.every(bool => bool === true); // false
// const every = list.every(bool => bool); // false
2 голосов
/ 19 февраля 2020

Typescript компилируется в Javascript, поэтому у него нет доступных функций во время выполнения, которых нет у Javascript. Однако Javascript имеет как every, так и some, начиная с ES5, при условии, что вы передаете функцию идентификации:

arr.every(x => x) // all
arr.some(x => x)  // any

Этот тип вряд ли это будет конкретно задокументировано в книгах Typescript, потому что не было бы необходимости дублировать содержимое книги Javascript, просто чтобы сказать, что Typescript также обладает этими функциями. Если вы хотите узнать, какие функции доступны в стандартной библиотеке, вам следует обратиться к справке Javascript, такой как справка MDN Javascript .

2 голосов
/ 19 февраля 2020

Для этого можно использовать функцию Array.prototype.every () :

if(booleanList.every(val => val)){
 do something
}
...