import/namespace does not detect when something in a closer scope shadows a namespace import, leading to bogus lint warnings.
This example is a bit bigger than necessary, but it is closer to the conditions where I encountered it:
import React, { PropTypes } from 'react'
import { createStructuredSelector } from 'reselect'
import { connect } from 'react-redux'
import * as todos from 'ducks/todos'
const mapStateToProps = createStructuredSelector({
todos: todos.getTodos
})
const TodoApp = ({
todos
}) => (
<ol>
{/* import/namespace 'map' not found in imported namespace 'todos' */}
{todos.map(({ id }) => (<li key={id}>{id}</li>))}
</ol>
)
const connected = connect(mapStateToProps)(TodoApp)
export { connected as TodoApp }
The same thing happens if I change the arrow function to start like props => { const { todos } = props; ..., or even props => { const todos = props.todos; ....
import/namespacedoes not detect when something in a closer scope shadows a namespace import, leading to bogus lint warnings.This example is a bit bigger than necessary, but it is closer to the conditions where I encountered it:
The same thing happens if I change the arrow function to start like
props => { const { todos } = props; ..., or evenprops => { const todos = props.todos; ....