Я использую строгий режим. У меня есть следующий код:
const a: string[] = [];
// something that fills `a`
while (a.length > 0) {
const i: string = a.pop(); // Error on this line
console.log(i);
// maybe add something else to `a`
}
В этом случае я получаю сообщение об ошибке в строке, потому что pop
имеет тип возврата string | null
. Что имеет смысл для общего использования метода pop
, но я защищаюсь от этого случая? Есть ли более машинописный способ сделать это, чтобы получить правильную защиту типа?
Я не могу просто l oop над массивом (например, используя of
), потому что иногда a
добавляет новые элементы к нему во время l oop и семантика не совпадают.