Skip to content

Commit

Permalink
sync with english version for TypeError (#9246)
Browse files Browse the repository at this point in the history
  • Loading branch information
yin1999 authored Oct 14, 2022
1 parent 5c85302 commit 612c2ae
Showing 1 changed file with 43 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
```

Expand All @@ -87,7 +79,6 @@ try {

{{Compat}}

## 相关链接
## 参见

- {{jsxref("Error")}}
- {{jsxref("TypeError.prototype")}}

0 comments on commit 612c2ae

Please sign in to comment.