Appearance
非异常故障
到目前为止,我们一直在讨论运行时错误——JavaScript 运行时告诉我们它认为某些东西是无意义的情况。出现这些情况是因为 ECMAScript 规范明确说明了语言在遇到意外情况时应该如何表现。 例如,规范说尝试调用不可调用的东西应该抛出错误。也许这听起来像是“明显的行为”,但您可以想象访问对象上不存在的属性也应该抛出错误。相反,JavaScript 给了我们不同的行为并返回值 undefined :
javascript
const user = {
name: "小金",
age: 18
}
user.location; // 返回 undefined
最终,静态类型系统要求必须调用哪些代码,应该在其系统中标记,即使它是不会立即抛出错误的“有效”JavaScript。比如:在 TypeScript 中,以下代码会产生关于 location 未定义的错误:
TypeScript 可以在我们的程序中捕获很多合法的错误。例如:
错别字
未调用的函数
或基本逻辑错误