Как кодировать по этому правилу для следующего?
let someArray = [...];
for (let i = 0, n = someArray.length; i < n; i++) {
...
}
Как кодировать по этому правилу для следующего?
let someArray = [...];
for (let i = 0, n = someArray.length; i < n; i++) {
...
}
Это практически классика в JavaScript.
Правило tsLint предназначено для улучшения читабельности вашего кода.
Большинство людей кэшируют длину массива, потому что считают, что это дает преимущество в производительности. Если это единственная причина, по которой вы это делаете, потенциальный предельный выигрыш не стоит затрат на читаемость (и на самом деле это было медленнее, когда я запускал тест JSPerf в своем браузере).
Так что это "рекомендуемое решение tsLint" по умолчанию...
for (let i = 0; i < someArray.length; i++) {
В JavaScript свойство length не повторяет массив, поэтому стоимость незначительна.
Если вы не согласны, вы, конечно, можете отключить правило - вот способ сделать это "комментарий".
/* tslint:disable:one-variable-per-declaration */
Или способ конфигурации:
"one-variable-per-declaration": false
Или в вашем случае вы можете использовать флаг конфигурации, который отключает его только для for
циклов:
"one-variable-per-declaration": [true, "ignore-for-loop"]
let i = 0; let n = someArray.length; for (; i<n; i++) { ... }
- person ikegami   schedule 21.11.2016