Why does TypeScript think an object in an array is possibly undefined when noUncheckedIndexedAccess configuration is enabled even after the length is checked?
interface Item {
    x: number
}
declare var items: Item[]
if(items.length === 2) { // Length is checked
    const [first, second] = items
    first.x // Error: Object is possibly undefined
    second.x // Error: Object is possibly undefined
}
I would expect the length === 2 to "prove" to TypeScript that the object in the first and second position of the array are present.