Как использовать цикл for…in с TypeScript?

В TypeScript цикл for...in используется для перебора свойств объекта. Давайте рассмотрим подробнее, как его использовать.

Синтаксис цикла for...in выглядит следующим образом:

for (let property in object) {
  // тело цикла
}

Где property - это переменная, которая будет содержать имя свойства объекта на каждой итерации, и object - это объект, свойства которого нужно перебрать.

Простой пример использования цикла for...in:

const person = {
  name: 'John',
  age: 30,
  hobby: 'reading'
};

for (let prop in person) {
  console.log(prop); // выводит имя свойства
  console.log(person[prop]); // выводит значение свойства
}

В результате выполнения этого кода на каждой итерации цикла будет выводиться имя свойства и его значение:

name
John
age
30
hobby
reading

Важно помнить, что цикл for...in перебирает не только собственные свойства объекта, но и все свойства, унаследованные от прототипа. Если вам нужно перебрать только собственные свойства, вы можете воспользоваться методом hasOwnProperty():

for (let prop in person) {
  if (person.hasOwnProperty(prop)) {
    console.log(prop); // выводит только собственные свойства объекта
    console.log(person[prop]);
  }
}

Цикл for...in также работает со значениями массивов, но поскольку массивы в TypeScript также являются объектами, возможно неожиданное поведение. Рекомендуется использовать цикл for...of для перебора элементов массивов.

В заключение, цикл for...in в TypeScript предоставляет удобный способ перебрать все свойства объекта. При использовании этого цикла важно учитывать наличие унаследованных свойств и использовать метод hasOwnProperty(), если нужно перебрать только собственные свойства.