tslint
5.11进行了以下let
到const
的转换:
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];
但是(在我看来(尽管可能是无害的)),此更改是错误的! (因为这是不必要的并且具有误导性。)
是否有办法在循环内禁用从let
到const
的转换?
虽然我可以使用rule flags逐个禁用prefer-const
,但我不想用这些注释来污染我的代码。理想情况下,我可以通过tslint.json
中的设置来解决此问题。
答案 0 :(得分:0)
看来,使用tslint的let
(或任何其他配置设置)无法在循环中禁用从const
到prefer-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
;恕我直言,虽然性能可能稍有改善,但是这段代码感觉更加简洁明了。