Это результат TSLint no-shadow
rule .Это позволяет избежать ошибок, возникающих из-за непреднамеренных теневых переменных.И это требует предоставления обходных путей для переменных, которые могут быть безопасно затенены.
Здесь addTodo
import затеняется addTodo
prop.Кажется, это было сделано намеренно, в этом случае правило является препятствием.
Таких проблем с no-shadow
можно избежать, применяя стиль, при котором объекты не деструктурируются, если переменные могут стать неоднозначными.Это позволяет разрешать общие проблемы с одноименными свойствами, например, в объектах props
и state
.Это также может улучшить читабельность в некоторых местах, потому что не требуется обратного отслеживания, в то время как другие места могут стать более многословными:
import * as actions from "../../redux/actions";
// ... component code
handleAdd = (todo: Todo) => {
const { props } = this;
// some code ... eventually:
props.addTodo(todo);
}
export default connect(
mapStateToProps,
{ addTodo: actions.addTodo }
)(MyComponent);
Для нескольких создателей действий в качестве реквизитов, вместо * может использоваться некоторая реализация pick
.1017 *.
Этот стиль может конфликтовать с ESLint prefer-destructuring
rule .