【发布时间】:2019-06-29 18:19:37
【问题描述】:
在工作中,我们使用带有严格 null 检查帮助的 Typescript 来捕获由 null/未定义变量引起的异常。然而,我们最近遇到了一个 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]?
【问题讨论】:
标签: arrays typescript types undefined