From 612c2aef20c3a34ae74276876329a0c2d5ab8c23 Mon Sep 17 00:00:00 2001 From: A1lo Date: Sat, 15 Oct 2022 06:55:21 +0800 Subject: [PATCH] sync with english version for `TypeError` (#9246) --- .../global_objects/typeerror/index.md | 95 +++++++++---------- 1 file changed, 43 insertions(+), 52 deletions(-) diff --git a/files/zh-cn/web/javascript/reference/global_objects/typeerror/index.md b/files/zh-cn/web/javascript/reference/global_objects/typeerror/index.md index ea9ef2823ae4e5..a556f800cf71e8 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typeerror/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/typeerror/index.md @@ -5,77 +5,69 @@ slug: Web/JavaScript/Reference/Global_Objects/TypeError {{JSRef}} -**`TypeError(类型错误)`** 对象用来表示值的类型非预期类型时发生的错误。 +**`TypeError`**(类型错误)对象通常(但并不只是)用来表示值的类型非预期类型时发生的错误。 -## 语法 +以下情况会抛出 `TypeError`: -```plain -new TypeError([message[, fileName[, lineNumber]]]) -``` - -### 参数 - -- `message 消息` - - : 可选。描述此错误 -- `fileName 文件名` {{non-standard_inline}} - - : 可选。引起该异常的代码所在的文件的名字。 -- `lineNumber 行号` {{non-standard_inline}} - - : 可选。引起该异常的代码的行号。 - -## 描述 - -当传入函数的**操作数**或**参数**的类型并非操作符或函数所预期的类型时,将抛出一个 TypeError 类型错误。 - -## 属性 - -- {{jsxref("TypeError.prototype")}} - - : 允许为一个 TypeError 类型错误附加属性。 - -## 方法 - -全局 TypeError 不包含任何方法,不过,它将从原型链中继承一些方法。 +- 传递给运算符的操作数或传递给函数的参数与预期的类型不兼容;或 +- 尝试修改无法更改的值;或 +- 尝试以不适当的方法使用一个值。 -## `TypeError` 类型错误实例 +`TypeError` 是一个{{Glossary("serializable object", "可序列化对象")}},所以可以使用 {{domxref("structuredClone()")}} 对它进行克隆,也可以使用 {{domxref("Worker/postMessage()", "postMessage()")}} 在 [Worker](/zh-CN/docs/Web/API/Worker) 之间拷贝它。 -### 属性 +## 构造函数 -{{page('/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype', '属性')}} +- {{jsxref("Global_Objects/TypeError/TypeError", "TypeError()")}} + - : 创建一个新的 `TypeError` 对象。 -### 方法 +## 实例属性 -{{page('/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypeError/prototype', '方法')}} +- {{jsxref("Error.prototype.message")}} + - : 错误消息。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.name")}} + - : 错误名称。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.cause")}} + - : 表示导致当前错误被抛出的原因。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.fileName")}} {{non-standard_inline}} + - : 引发此错误的文件的路径。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.lineNumber")}} {{non-standard_inline}} + - : 引发此错误的代码所在的文件的行号。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.columnNumber")}} {{non-standard_inline}} + - : 引发此错误的代码在文件中所在行的列号。继承自 {{jsxref("Error")}}。 +- {{jsxref("Error.prototype.stack")}} {{non-standard_inline}} + - : 堆栈跟踪。继承自 {{jsxref("Error")}}。 ## 示例 -### 示例:捕获类型错误 +### 捕获类型错误 ```js try { - null.f(); + null.f() } catch (e) { - console.log(e instanceof TypeError); // true - console.log(e.message); // "null has no properties" - console.log(e.name); // "TypeError" - console.log(e.fileName); // "Scratchpad/1" - console.log(e.lineNumber); // 2 - console.log(e.columnNumber); // 2 - console.log(e.stack); // "@Scratchpad/2:2:3\n" + console.log(e instanceof TypeError) // true + console.log(e.message) // "null has no properties" + console.log(e.name) // "TypeError" + console.log(e.fileName) // "Scratchpad/1" + console.log(e.lineNumber) // 2 + console.log(e.columnNumber) // 2 + console.log(e.stack) // "@Scratchpad/2:2:3\n" } ``` -### 示例:创建一个类型错误 +### 创建一个类型错误 ```js try { - throw new TypeError('Hello', "someFile.js", 10); + throw new TypeError('Hello', "someFile.js", 10) } catch (e) { - console.log(e instanceof TypeError); // true - console.log(e.message); // "Hello" - console.log(e.name); // "TypeError" - console.log(e.fileName); // "someFile.js" - console.log(e.lineNumber); // 10 - console.log(e.columnNumber); // 0 - console.log(e.stack); // "@Scratchpad/2:2:9\n" + console.log(e instanceof TypeError) // true + console.log(e.message) // "Hello" + console.log(e.name) // "TypeError" + console.log(e.fileName) // "someFile.js" + console.log(e.lineNumber) // 10 + console.log(e.columnNumber) // 0 + console.log(e.stack) // "@Scratchpad/2:2:9\n" } ``` @@ -87,7 +79,6 @@ try { {{Compat}} -## 相关链接 +## 参见 - {{jsxref("Error")}} -- {{jsxref("TypeError.prototype")}}