tslint:有没有办法在循环中禁用Preferred-const?

时间:2019-01-23 17:57:11

标签: typescript tslint

tslint 5.11进行了以下letconst的转换:

for (let i = 0, len = array.length; i < len; ++i) {
  let column = array[i];

for (let i = 0, len = array.length; i < len; ++i) {
  const column = array[i];

但是(在我看来(尽管可能是无害的)),此更改是错误的! (因为这是不必要的并且具有误导性。)

是否有办法在循环内禁用从letconst的转换? 虽然我可以使用rule flags逐个禁用prefer-const,但我不想用这些注释来污染我的代码。理想情况下,我可以通过tslint.json中的设置来解决此问题。

1 个答案:

答案 0 :(得分:0)

看来,使用tslint的let(或任何其他配置设置)无法在循环中禁用从constprefer-const的转换。
(非常感谢@ Lynx242的调查和见解!)

我最终要做的是将变量声明移到循环本身之外:

for (let i = 0, len = array.length; i < len; ++i) { const column = array[i];

并进入for循环的init块:

for (let i = 0, len = array.length, column; i < len; ++i) { column = array[i];

在这里,我们没有在循环的每次迭代中重新声明column;恕我直言,虽然性能可能稍有改善,但是这段代码感觉更加简洁明了。