JavaScript で配列にアクセスする際、配列の長さを超えるインデックスを指定すると undefined が返されることがあります。しかし、TypeScript の型定義上では、配列の長さを超えるインデックスを指定しても undefined 型が返されることはありません。これはランタイムエラーを引き起こす恐れがあります。
noUncheckedIndexedAccess オプションを有効にしている場合、配列のインデックスで返される型は常に undefined とのユニオン型になり、undefined チェックが必ず必要になるのでより安全です。しかし、大規模なコードベースで新たにこのオプションを有効にすると、多くの箇所でコンパイルエラーが発生するため、一度に全ての箇所を修正するのは困難です。
arr.at() メソッドを使うと noUncheckedIndexedAccess オプションの有効無効にかかわらず、配列のインデックスで返される型は常に T | undefined になります。
const arr = [1, 2, 3];
 
arr.at(0); // 1
// ?^ number | undefined
arr.at(-1); // 3
// ?^ number | undefinedTypeScript で配列の要素にインデックスを指定してアクセスする場合には、arr[0] ではなく arr.at(0) を使うことで、より安全にコードを書くことができます。