БастыАудиоКомикстерБалаларға арналған
Егор
Егордәйексөз келтірді4 ай бұрын
Но важно помнить, что это фикция. Как и все другие аспекты системы типов TypeScript, она удаляется при выполнении (правило 3). Это значит, что конструкции вроде Object.keys вернут строки: const keys = Object.keys(xs); // тип string[] for (const key in xs) { key; // тип string const x = xs[key]; // тип number } Удивительно, что последнее обращение работает, так как string не может быть назначен для number. Лучше всего представить это как прагматичное отклонение в стиле итерации по массивам, что является обыденным в JavaScript. Это не самый хороший способ производить цикл по массивам. Если вам не важен индекс, можете использовать for…of: for (const x of xs) { x; // тип number } Если же индекс важен, то можно получить его в виде number с помощью Array.prototype.forEach: xs.forEach((x, i) => { i; // тип number x; // тип number }); Чтобы осуществить раннее прерывание цикла, лучше использовать цикл в стиле С for(;;) : for (let i = 0; i < xs.length; i++) { const x = xs[i]; if (x < 0) break; } Если типы не кажутся вам убедительными, то оцените качество: в большинстве браузеров и движках JavaScript циклы for…in по массивам оказываются на несколько порядков медленнее, чем for…of или for(;;).
Эффективный TypeScript: 62 способа улучшить код
Эффективный TypeScript: 62 способа улучшить код
·
Дэн Вандеркам
Эффективный TypeScript: 62 способа улучшить код
Дэн Вандеркамжәне т.б.
1.5K

Кіру не тіркелу пікір қалдыру үшін