设置在Typescript / ECMAScript特性中

时间:2016-07-22 05:02:00

标签: javascript typescript ecmascript-6

我现在正在学习Typescript,并且在理解文档的某些部分时遇到一些问题。请参阅typescript.lang手册

上的代码
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"
}

我不明白为什么Set可以设置像'物种'宠物[“物种”] =“哺乳动物”这样的关键。我认为Set默认不是键值特性?

为什么(让宠物的宠物)是“猫”,“狗”,“仓鼠”没有“哺乳动物”

请帮忙描述一下。非常感谢

1 个答案:

答案 0 :(得分:1)

Set是一个可迭代对象,初始数组是可迭代的值,这就是为什么你可以通过for..of访问它们的原因。当你说pets["species"]= "mamals"你正在创建一个属性“物种”,其值为“mamals”,但这不是可迭代值的一部分,这就是为什么你在使用for..in时可以看到它。

for..of将显示iterable的值,而for..in将显示对象的属性。我希望这有帮助