From 663f3bfa049c45755427a4c62115544adedb528e Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Sat, 2 Sep 2023 15:37:46 +0800 Subject: [PATCH] docs: perfect description --- docs/any.md | 2 +- docs/function.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/any.md b/docs/any.md index 6026996..067e6e1 100644 --- a/docs/any.md +++ b/docs/any.md @@ -240,7 +240,7 @@ let v2:string = f(); // 不报错 let v3:boolean = f(); // 不报错 ``` -上面示例中,函数`f()`会抛错,所以返回值类型可以写成`never`,即不可能返回任何值。各种其他类型的变量都可以赋值为`f()`的运行结果(`never`类型)。 +上面示例中,函数`f()`会抛出错误,所以返回值类型可以写成`never`,即不可能返回任何值。各种其他类型的变量都可以赋值为`f()`的运行结果(`never`类型)。 为什么`never`类型可以赋值给任意其他类型呢?这也跟集合论有关,空集是任何集合的子集。TypeScript 就相应规定,任何类型都包含了`never`类型。因此,`never`类型是任何其他类型所共有的,TypeScript 把这种情况称为“底层类型”(bottom type)。 diff --git a/docs/function.md b/docs/function.md index 1d95ad5..f92e4c3 100644 --- a/docs/function.md +++ b/docs/function.md @@ -601,7 +601,7 @@ const f3 = function ():void { 上面示例中,函数字面量声明了返回`void`类型,这时只要有返回值(除了`undefined`和`null`)就会报错。 -函数的运行结果如果是抛错,也允许将返回值写成`void`。 +函数的运行结果如果是抛出错误,也允许将返回值写成`void`。 ```typescript function throwErr():void { @@ -609,7 +609,7 @@ function throwErr():void { } ``` -上面示例中,函数`throwErr()`会抛错,返回值类型写成`void`是允许的。 +上面示例中,函数`throwErr()`会抛出错误,返回值类型写成`void`是允许的。 除了函数,其他变量声明为`void`类型没有多大意义,因为这时只能赋值为`undefined`或者`null`(假定没有打开`strictNullChecks`) 。 @@ -634,7 +634,7 @@ function fail(msg:string):never { } ``` -上面示例中,函数`fail()`会抛错,不会正常退出,所以返回值类型是`never`。 +上面示例中,函数`fail()`会抛出错误,不会正常退出,所以返回值类型是`never`。 注意,只有抛出错误,才是 never 类型。如果显式用`return`语句返回一个 Error 对象,返回值就不是 never 类型。 @@ -646,7 +646,7 @@ function fail():Error { 上面示例中,函数`fail()`返回一个 Error 对象,所以返回值类型是 Error。 -另外,由于抛错的情况属于`never`类型或`void`类型,所以无法从返回值类型中获知,抛出的是哪一种错误。 +另外,由于抛出错误的情况属于`never`类型或`void`类型,所以无法从返回值类型中获知,抛出的是哪一种错误。 (2)无限执行的函数。 @@ -696,7 +696,7 @@ function f( 上面示例中,函数`f()`的参数`x`的类型为`string|undefined`。但是,`x`类型为`undefined`时,调用了`neverReturns()`。这个函数不会返回,因此 TypeScript 可以推断出,判断语句后面的那个`x`,类型一定是`string`。 -一个函数如果某些条件下有正常返回值,另一些条件下抛错,这时它的返回值类型可以省略`never`。 +一个函数如果某些条件下有正常返回值,另一些条件下抛出错误,这时它的返回值类型可以省略`never`。 ```typescript function sometimesThrow():number {