Искажение скриптов. Свойство не существует в типе "JSX.IntrinsicElements" при использовании React.createClass?

Я использую машинопись для записи приложения redux.

var item = React.createClass({
  render: function() {
    return (<div>hello world</div>)
  }
});

export default class ItemList extends Component<any, any> {
    render() {
        return (<item />)
    }
}

Тогда машинопись жалуется на это:

Property 'item' does not exist on type 'JSX.IntrinsicElements'.

Ответы

Ответ 1

var Item = React.createClass({
  render: function() {
    return (<div>hello world</div>)
  }
});

export default class ItemList extends Component<any, any> {
    render() {
        return (<Item />)
    }
}

Ответ 2

Вы можете объявить свой тип элемента следующим образом:

declare namespace JSX {
  interface IntrinsicElements {
    item: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, 
  }
}

Ответ 3

потому что ваше имя компонента item не начинается с прописной буквы, будет жаловаться. замена Item на item может решить эту жалобу.