2017-02-13 2 views
0

Итак, у меня есть этот интерфейс для моего словаря, и я инициализирую его ниже.Typcript: использование Object.keys для итерации по словарю

export interface IHash { 
    [tagName: string] : string; 
} 

var x : IHash = {}; 
x["first"] = "details"; 
x["second"] = "details"; 

Я бегу let keys = Object.keys(x);, а затем распечатать мой keys и я получаю 01. Похоже, что он выводит индексы. Я ожидал, что он напечатает first и second. Должен ли я пройти через него, чтобы получить этот результат?

+0

Невозможно воспроизвести: http://plnkr.co/edit/o8QetWN1AVVP5sKDPUtE?p=preview –

ответ

0

Как вы делаете печать keys? Это то, что я вижу в ts-узле

> export interface IHash {  [tagName: string] : string; } var x : IHash = {}; x["first"] = "details"; x["second"] = "details"; 
'details' 
> Object.keys(x); 
[ 'first', 'second' ] 
> 

, который предполагает, что ошибка связана с вашей печатью, а не с ключом.

Возможно, вы звоните Object.keys дважды в серии? В первый раз это даст вам [ 'first', 'second' ] и второй раз это даст вам [ '0', '1' ]

Смежные вопросы