LINUX.ORG.RU

История изменений

Исправление runtime, (текущая версия) :

Получается, что верить нельзя, надо доп. проверки (и несколько раз)

Не надо там никаких дополнительный проверок, нужно сразу проверять то, что ты хочешь:

if (Array.isArray(strs)) {
    // strs is string[] here
    for (const s of strs) {
        console.log(s);
    }
}

Тебе там учебный пример привели, чтобы ты понял, как оно работает, а ты думаешь, что это production quality код.

Если не хватает встроенных проверок, всегда можно написать свой type guard:

function myStuff(x: any): x is Stuff {
  // do your checks here, return boolean
  return true;
}

Исправление runtime, :

Получается, что верить нельзя, надо доп. проверки (и несколько раз)

Не надо там никаких дополнительный проверок, нужно сразу проверять то, что ты хочешь:

if (Array.isArray(strs)) {
    // strs is string[] here
    for (const s of strs) {
        console.log(s);
    }
}

Тебе там учебный пример привели, чтобы ты понял, как оно работает, а ты думаешь, что это production quality код.

Исходная версия runtime, :

Получается, что верить нельзя, надо доп. проверки (и несколько раз)

Не надо там никаких дополнительный проверок, нужно сразу проверять то, что ты хочешь:

if (Array.isArray(strs)) {
    for (const s of strs) {
        console.log(s);
    }
}

Тебе там учебный пример привели, чтобы ты понял, как оно работает, а ты думаешь, что это production quality код.