Skip to content

Commit 0144aea

Browse files
committed
Merge pull request zhongsp#24 from zhongsp/review
Update handbook
2 parents 6797a33 + aff0be2 commit 0144aea

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

doc/handbook/Advanced Types.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ pet.swim(); // errors
9999
这里的联合类型可能有点复杂,但是你很容易就习惯了。
100100
如果一个值类型是`A | B`,我们只能*确定*它具有成员同时存在于`A`**`B`里。
101101
这个例子里,`Bird`具有一个`fly`成员。
102-
我们能不确定一个`Bird | Fish`类型的变量是否有`fly`方法。
103-
如果变量在运行时真是`Fish`,那么调用`pet.fly()`就出错了。
102+
我们不能确定一个`Bird | Fish`类型的变量是否有`fly`方法。
103+
如果变量在运行时是`Fish`类型,那么调用`pet.fly()`就出错了。
104104

105105
# 类型保护与区分类型
106106

@@ -170,8 +170,8 @@ else {
170170
171171
## `typeof`类型保护
172172
173-
我们还没有真正的展示使用联合类型来实现`padLeft`的版本
174-
我们可以像下面这样使用类型断言来写
173+
我们还没有真正的展示过如何使用联合类型来实现`padLeft`
174+
我们可以像下面这样利用类型断言来写
175175
176176
```ts
177177
function isNumber(x: any): x is number {
@@ -217,7 +217,7 @@ function padLeft(value: string, padding: string | number) {
217217
如果你已经阅读了`typeof`类型保护并且对JavaScript里的`instanceof`操作符熟悉的话,你可能已经猜到了这节要讲的内容。
218218
219219
*`instanceof`类型保护*是通过其构造函数来细化其类型。
220-
比如,我们借鉴一下之前字符串补充的例子
220+
比如,我们借鉴一下之前字符串填充的例子
221221
222222
```ts
223223
interface Padder {
@@ -282,7 +282,7 @@ let coord: CoordList = [{ x: 10, y: 10}, { x: 0, y: 42, z: 10 }, 5];
282282
所以`10`是绝对有效的`XCoord``YCoord`,因为它们都引用`number`
283283
给原始类型起别名通常没什么用,尽管可以做为文档的一种形式使用。
284284
285-
像接口一起,类型别名也可以是泛型 - 我们可以添加类型参数并且在别名声明的右侧传入:
285+
同接口一样,类型别名也可以是泛型 - 我们可以添加类型参数并且在别名声明的右侧传入:
286286
287287
```ts
288288
type Container<T> = { value: T };

doc/handbook/Variable Declarations.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212

1313
# `var` 声明
1414

15-
一直以来我们都是通过`var`关键字在JavaScript时定义变量
15+
一直以来我们都是通过`var`关键字定义JavaScript变量
1616

1717
```ts
1818
var a = 10;
1919
```
2020

21-
大家都懂,这里定义了一个名是`a`值为`10`的变量。
21+
大家都能理解,这里定义了一个名为`a`值为`10`的变量。
2222

2323
我们也可以在函数内部定义变量:
2424

@@ -191,7 +191,7 @@ let hello = "Hello!";
191191

192192
## 块作用域
193193

194-
当用`let`声明一个变量,它使用的是*记法作用域**块作用域*
194+
当用`let`声明一个变量,它使用的是*词法作用域**块作用域*
195195
不同于使用`var`声明的变量那样可以在包含它们的函数外访问,块作用域变量在包含它们的块或`for`循环之外是不能访问的。
196196

197197
```ts
@@ -226,8 +226,8 @@ catch (e) {
226226
console.log(e);
227227
```
228228

229-
块级作用域的变量另一个特点是,它们不能在被声明之前读或写。
230-
虽然这些变量始终“存在”于它们的作用域里,但在直到声明它的的代码之前的区域都属于*时间死区*
229+
拥有块级作用域的变量的另一个特点是,它们不能在被声明之前读或写。
230+
虽然这些变量始终“存在”于它们的作用域里,但在直到声明它的代码之前的区域都属于*时间死区*
231231
它只是用来说明我们不能在`let`语句之前访问它们,幸运的是TypeScript可以告诉我们这些信息。
232232

233233
```ts
@@ -236,7 +236,7 @@ let a;
236236
```
237237

238238
注意一点,我们仍然可以在一个拥有块作用域变量被声明前*获取*它。
239-
只是我不能在变量声明前去调用那个函数
239+
只是我们不能在变量声明前去调用那个函数
240240
如果生成代码目标为ES2015,现代的运行时会抛出一个错误;然而,现今TypeScript是不会报错的。
241241

242242
```ts
@@ -278,7 +278,7 @@ let x = 10;
278278
let x = 20; // 错误,不能在1个作用域里多次声明`x`
279279
```
280280

281-
并不是要求两个均是块级作用域的声明TypeScript才会给出一个错误的提醒
281+
并不是要求两个均是块级作用域的声明TypeScript才会给出一个错误的警告
282282

283283
```ts
284284
function f(x) {

0 commit comments

Comments
 (0)