gpt4 book ai didi

typescript - 为什么在 TypeScript 中,通过索引访问的数组元素的类型没有 "undefined"?

转载 作者:行者123 更新时间:2023-12-04 00:53:59 25 4
gpt4 key购买 nike

我注意到在下面的例子中 c 的类型是 number , 不是 number|undefined :

const a:number[] = []
const c = a[1]
换句话说,我可以做到
let b:number = a[1]
没有问题,而 a[1]可以 undefined .这可能会导致代码中隐藏的错误。我错过了什么吗?

最佳答案

在下一个版本的 typescript (4.1) 中,您将能够使用 noUncheckedIndexedAccess 启用所需的行为。 (又名迂腐索引签名检查)编译器选项:

  • Any indexed access expression obj[index] used in a read position will include undefined in its type, unless index is a string literal or numeric literal with a previous narrowing in effect
  • Any property access expression obj.prop where no matching declared property named prop exists, but a string index signature does exist, will include undefined in its type, unless a previous narrowing on obj.prop is in effect

所以 a[1]将导致 number | undefined .您已经可以通过安装 typescript@next 来尝试它
Announcement
PR

关于typescript - 为什么在 TypeScript 中,通过索引访问的数组元素的类型没有 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64116910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com