TypeScript中文手册
12,Iterators(迭代)
> 当一个对象实现了[`Symbol.iterator`](https://www.tsdev.cn/Symbols.md#symboliterator)属性时,我们认为它是可迭代的。 一些内置的类型如`Array`,`Map`,`Set`,`String`,`Int32Array`,`Uint32Array`等都已经实现了各自的`Symbol.iterator`。 对象上的`Symbol.iterator`函数负责返回供迭代的值。 ### 12.1 `for..of` 语句 ```typescript let someArray = [1, "string", false]; for (let entry of someArray) { console.log(entry); // 1, "string", false } ``` ### 12.2 `for..of` vs. `for..in` 语句 - `for..in`迭代的是对象的 *键* 的列表,而`for..of`则迭代对象的键对应的值 ```typescript let list = [4, 5, 6]; for (let i in list) { console.log(i); // "0", "1", "2", } for (let i of list) { console.log(i); // "4", "5", "6" } ``` - `for..in`可以操作任何对象;它提供了查看对象属性的一种方法。 但是`for..of`关注于迭代对象的值。 ```typescript let pets = new Set(["Cat", "Dog", "Hamster"]); pets["species"] = "mammals"; for (let pet in pets) { console.log(pet); // "species" } for (let pet of pets) { console.log(pet); // "Cat", "Dog", "Hamster" } ```
顶部
收展
底部
[TOC]
目录
1,基础类型
2,变量声明
3,接口
4,类
5,函数
6,泛型
7,枚举
8,类型推论
9,类型兼容性
10,高级类型
11,符号Symbols
12,Iterators(迭代)
13,模块
14,命名空间
15,模块解析