核心结论
开启noUncheckedIndexedAccess后,只要编译器无法证明某个索引对应的成员一定存在,读取结果就会额外包含undefined。这会暴露普通数组越界、开放字典缺项和动态属性不存在等真实风险。该选项的目的不是机械增加判空代码,而是让静态类型更接近运行时事实。处理相关错误时,应优先采用控制流收窄、明确的缺失分支、元组或非空数组等更准确的数据结构,避免用大量非空断言!掩盖问题。
底层机制
普通数组即使声明为string[],任意number索引也可能越界,因此在严格索引访问下,items[index]通常是string | undefined。字符串索引签名也只说明