(() => {
'use strict';

let i = 1;
const f = () => {
let i = 2; // Error - 'i' is already declared in the upper scope. (no-shadow)
i = 22;
console.log(i);
};

i = 11;
f();
console.log(i);
})();

eslintでチェックすると6行目でError - 'i' is already declared in the upper scope. (no-shadow)
が出るんですがこれはダメな書き方なんでしょうか?