Skip to content

Commit d80ba2d

Browse files
committed
handbook: update translation for "type inference"
1 parent 7694263 commit d80ba2d

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

doc/Handbook.md

+14-14
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ TypeScript是微软公司的注册商标.
6565
* [合并模块](#9.3)
6666
* [模块与类和函数和枚举类型合并](#9.4)
6767
* [无效的合并](#9.5)
68-
* [类型推断](#10)
68+
* [类型推论](#10)
6969
* [基础](#10.1)
7070
* [最佳通用类型](#10.2)
7171
* [上下文类型](#10.3)
@@ -84,9 +84,9 @@ TypeScript是微软公司的注册商标.
8484

8585
为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体,布尔值等。TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。
8686

87-
### <a name="1.1"></a>Boolean
87+
### <a name="1.1"></a>布尔值
8888

89-
最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做`布尔值`(其它语言中也一样)。
89+
最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做`boolean`(其它语言中也一样)。
9090

9191
```typescript
9292
var isDone: boolean = false;
@@ -100,7 +100,7 @@ var isDone: boolean = false;
100100
var height: number = 6;
101101
```
102102

103-
### <a name="1.3"></a>String
103+
### <a name="1.3"></a>字符串
104104

105105
JavaScript程序的另一项基本操作是处理网页或服务器端的文本数据。
106106
像其它语言里一样,我们使用`string`表示文本数据类型。
@@ -141,7 +141,7 @@ var list: number[] = [1, 2 ,3];
141141
var list: Array<number> = [1, 2, 3];
142142
```
143143

144-
### <a name="1.5"></a>Enum
144+
### <a name="1.5"></a>枚举
145145

146146
`enum`类型是对JavaScript标准数据类型的一个补充。像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。
147147

@@ -1507,7 +1507,7 @@ var myAdd: (baseValue:number, increment:number) => number =
15071507
function(x, y) { return x + y; };
15081508
```
15091509
1510-
这叫做‘按上下文归类’,是类型推断的一种。它帮助我们更好地为程序指定类型。
1510+
这叫做‘按上下文归类’,是类型推论的一种。它帮助我们更好地为程序指定类型。
15111511
15121512
### <a name="5.3"></a>可选参数和默认参数
15131513
@@ -1765,13 +1765,13 @@ var output = identity<string>("myString"); // type of output will be 'string'
17651765
17661766
这里我们明确的指定了‘T’是字符串类型,并做为一个参数传给函数,使用了<>括起来。
17671767
1768-
第二种方法更普遍。利用了类型推断,编译器会根据传入的参数自动地帮助我们确定T的类型:
1768+
第二种方法更普遍。利用了类型推论,编译器会根据传入的参数自动地帮助我们确定T的类型:
17691769
17701770
```typescript
17711771
var output = identity("myString"); // type of output will be 'string'
17721772
```
17731773
1774-
注意我们并没用<>明确的指定类型,编译器看到了“myString”,把T设置为此类型。类型推断帮助我们保持代码精简和高可读性。如果编译器不能够自动地推断出类型的话,只能像上面那样明确的传入T的类型,在一些复杂的情况下,这是可能出现的。
1774+
注意我们并没用<>明确的指定类型,编译器看到了“myString”,把T设置为此类型。类型推论帮助我们保持代码精简和高可读性。如果编译器不能够自动地推断出类型的话,只能像上面那样明确的传入T的类型,在一些复杂的情况下,这是可能出现的。
17751775
17761776
### <a name="6.2"></a>使用泛型变量
17771777
使用泛型创建像‘identity’这样的泛型函数时,编译器要求你在函数体必须正确的使用这个通用的类型。换句话说,你必须把这些参数当做是任意或所有类型。
@@ -2384,21 +2384,21 @@ module Color {
23842384
23852385
并不是所有的合并都被允许。现在,类不能与类合并,变量与类型不能合并,接口与类不能合并。想要模仿类的合并,请参考[Mixins in TypeScript](https://typescript.codeplex.com/wikipage?title=Mixins%20in%20TypeScript&referringTitle=Declaration%20Merging)。
23862386
2387-
## <a name="10"></a>类型推断
2387+
## <a name="10"></a>类型推论
23882388
2389-
这节介绍TypeScript里的类型推断。即,类型是在哪里如何被推断的。
2389+
这节介绍TypeScript里的类型推论。即,类型是在哪里如何被推断的。
23902390
23912391
### <a name="10.1"></a>基础
23922392
2393-
TypeScript里,在有此没有明确指出类型的地方,类型推断会帮助提供类型。如下面的例子
2393+
TypeScript里,在有此没有明确指出类型的地方,类型推论会帮助提供类型。如下面的例子
23942394
23952395
```typescript
23962396
var x = 3;
23972397
```
23982398
23992399
变量x的类型被推断为数字。这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时。
24002400
2401-
大多数情况下,类型推断是直截了当地。后面的小节,我们会浏览类型推断时的细微差别
2401+
大多数情况下,类型推论是直截了当地。后面的小节,我们会浏览类型推论时的细微差别
24022402
24032403
### <a name="10.2"></a>最佳通用类型
24042404
@@ -2422,11 +2422,11 @@ var zoo = [new Rhino(), new Elephant(), new Snake()];
24222422
var zoo: Animal[] = [new Rhino(), new Elephant(), new Snake()];
24232423
```
24242424
2425-
如果没有找到最佳通用类型的话,类型推断的结果是空对象类型,{}。因为这个类型没有任何成员,所以访问其成员的时候会报错。
2425+
如果没有找到最佳通用类型的话,类型推论的结果是空对象类型,{}。因为这个类型没有任何成员,所以访问其成员的时候会报错。
24262426
24272427
### <a name="10.3"></a>上下文类型
24282428
2429-
TypeScript类型推断也可能按照相反的方向进行。这被叫做“按上下文归类”。按上下文归类会发生在表达式的类型与所处的位置相关时。比如:
2429+
TypeScript类型推论也可能按照相反的方向进行。这被叫做“按上下文归类”。按上下文归类会发生在表达式的类型与所处的位置相关时。比如:
24302430
24312431
```typescript
24322432
window.onmousedown = function(mouseEvent) {

doc/TypeScript Language Specification.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ TypeScript语法中包含了一些ES6的语法, 如类和模块. 类可以让开
228228

229229
TypeScript提供一套类型注解系统. 类型注解系统好比JSDoc注释一样, 但在TypeScript中, 它直接与法语整合在一起. 整合后代码可读性更高了, 也节省了查找类型注解与其对应变量的成本.
230230

231-
TypeScript类型系统可以表示对Javascript对象的约束和使用工具来强制这些限制. 为了最小化注解的数量, TypeScript类型系统大量的使用类型推断. 比如从下面的语句, TypeScript会推断出变量i是number类型.
231+
TypeScript类型系统可以表示对Javascript对象的约束和使用工具来强制这些限制. 为了最小化注解的数量, TypeScript类型系统大量的使用类型推论. 比如从下面的语句, TypeScript会推断出变量i是number类型.
232232

233233
```TypeScript
234234
var i = 0;
@@ -242,7 +242,7 @@ function f() {
242242
}
243243
```
244244

245-
开发者可以使用TypeScript的语言服务就是得益于类型推断. 比如, 代码编辑器可以引入TypeScript语言服务, 利用其查找字符串对象的成员.
245+
开发者可以使用TypeScript的语言服务就是得益于类型推论. 比如, 代码编辑器可以引入TypeScript语言服务, 利用其查找字符串对象的成员.
246246

247247
![Image 1](./images/1.png)
248248

@@ -269,7 +269,7 @@ function f(s) {
269269

270270
## <a name="1.1"/>1.1 外部(外来)声明
271271

272-
一条外部声明可以把变量引入TypeScript, 并且对生成的Javascript无任何影响. 程序员通过使用外部环境声明来告诉TypeScript编译器某些组件提供了什么样的变量. 例如, TypeScript编译器发现使用了没有声明过的变量时默认输出error. 程序员可以使用外部环境声明来把浏览器提供的公共变量引入TypeScript. 下面的例子声明了浏览器环境下的document对象. 由于此声明并没给出具体类型, 所以TypeScript类型推断为any类型. any的意思是工具不必去猜测document的类型及行为. 下面的一些例子也演示了程序员如何使用类型去表示对象应具有的行为.
272+
一条外部声明可以把变量引入TypeScript, 并且对生成的Javascript无任何影响. 程序员通过使用外部环境声明来告诉TypeScript编译器某些组件提供了什么样的变量. 例如, TypeScript编译器发现使用了没有声明过的变量时默认输出error. 程序员可以使用外部环境声明来把浏览器提供的公共变量引入TypeScript. 下面的例子声明了浏览器环境下的document对象. 由于此声明并没给出具体类型, 所以TypeScript类型推论为any类型. any的意思是工具不必去猜测document的类型及行为. 下面的一些例子也演示了程序员如何使用类型去表示对象应具有的行为.
273273

274274
```TypeScript
275275
declare var document;
@@ -438,7 +438,7 @@ function mul(a: number, b: number) {
438438

439439
对于没有类型注解或默认值的变量和参数来讲, TypeScript会推断它们的类型为'any', 这样确保了编译器不再需要从函数被调用的地方去推断其返回值类型. 通常来讲, 这种由下至上推断类型的方式符合我们的直观感觉.
440440

441-
但是, 对于有限的一些上下文, 类型推断则会从表达式所处的上下文中由上至下进行. 这种情况叫做**按上下文归类**. 当我们在使用一个不清楚详细信息的类型的时候, 按上下文归类会帮助工具提供出色的提示信息. 比如, 在上面的jQuery例子中, 给'get'方法传了一个函数表达式做为第二个参数. 在对这个函数表达式归类的时候, 工具会把它当成'get'函数签名里面给出的那个函数类型, 并且提供包含相应参数名字和类型的模板.
441+
但是, 对于有限的一些上下文, 类型推论则会从表达式所处的上下文中由上至下进行. 这种情况叫做**按上下文归类**. 当我们在使用一个不清楚详细信息的类型的时候, 按上下文归类会帮助工具提供出色的提示信息. 比如, 在上面的jQuery例子中, 给'get'方法传了一个函数表达式做为第二个参数. 在对这个函数表达式归类的时候, 工具会把它当成'get'函数签名里面给出的那个函数类型, 并且提供包含相应参数名字和类型的模板.
442442

443443
```TypeScript
444444
$.get("http://mysite.org/divContent",

0 commit comments

Comments
 (0)