[英]Possibly Undefined Array References in Typescript Strict Mode
在工作中,我们使用带有严格空值检查的 Typescript 来帮助捕获由空/未定义变量引起的异常。 然而,我们最近遇到了一个 Typescript 似乎遗漏的错误。 下面的代码演示了它:
interface IMyObj {
foo: string;
}
const myArr: IMyObj[] = [];
const myObjProp = myArr[0].foo;
console.log(myObjProp);
Typescript 会毫无怨言地编译它,但是当运行它时,它显然会抛出一个类型错误:
Uncaught TypeError: Cannot read property 'foo' of undefined
我们当然可以将代码库中的所有数组类型定义为(IMyObj | undefined)[]
而不是IMyObj[]
,但这似乎也容易出错,因为很容易错过一个。
有没有办法让 Typescript 检测可能未定义的引用,例如myArr[0]
?
您可以添加此选项
"noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
进入tsconfigfile.json 的"compilerOptions"
对象以捕获错误取决于未定义的数组项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.