Ну я и не говорил что не нужно а других языках проверять.
Но в тс надо это делать в сильно большем количестве случаев/мест чем в расте.
Так я же и говорю, что проблема в TS скорее это soundness и недостаточная строгость. Вот если у него будут номинальные типы, если при чтении из массива компилятор будет заставлять тебя проверять на null / undefined то есть возвращать тип T | undefined а не просто тип T для arr[index] то тогда будет намного лучше в плане защиты от рантайм ошибок, но в то же время внесет излишнюю вербозность как в Rust