Ссылка из MDN:
Повторное использование одной и той же переменной в пределах одной и той же функции или области кадра вызывает синтаксический эффект.
if (x) { let foo; let foo; // SyntaxError thrown. }
Временная мертвая зона и ошибки с let