You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置tsconfig实现TypeScript数组索引的安全访问校验

有的,你可以通过开启 tsconfig.json 中 compilerOptions 下的 noUncheckedIndexedAccess 配置项实现该效果。

配置效果

开启该配置后:

  • 所有通过动态下标索引得到的数组元素,类型会自动加上 | undefined 联合类型,除非 TypeScript 可以 100% 确定该索引位置一定存在对应值
  • 你给出的示例代码开启配置后,x 和 y 的类型都会被推断为 string | undefined,而非默认的 string,匹配运行时的实际情况
  • 该配置同时也会作用于带索引签名的对象,例如声明为 { [key: string]: number } 类型的对象,通过任意字符串key取值时,返回类型也会自动变为 number | undefined

注意事项

  • 该配置仅在 TypeScript 4.1 及以上版本支持
  • 若你使用固定长度的元组类型(例如 const arr: [string, string] = ['hello', 'world']),使用合法范围的整数下标(0、1)取值时,TypeScript 依然会推断为确定的非undefined类型,仅超出范围、非整数、动态值索引时才会附加undefined类型

配置示例

{
  "compilerOptions": {
    "noUncheckedIndexedAccess": true
    // 其余原有配置保持不变
  }
}

内容的提问来源于stack exchange,提问作者Nino Filiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 21:36:07