TypeScriptを使用してreduxアプリケーションを作成しています。
var item = React.createClass({
render: function() {
return (<div>hello world</div>)
}
});
export default class ItemList extends Component<any, any> {
render() {
return (<item />)
}
}
次にTypeScriptはこれを不平を言います:
Property 'item' does not exist on type 'JSX.IntrinsicElements'.
var Item = React.createClass({
render: function() {
return (<div>hello world</div>)
}
});
export default class ItemList extends Component<any, any> {
render() {
return (<Item />)
}
}
これは、item
コンポーネントの名前が大文字で始まっていないため、TypeScriptで問題が発生するためです。 item
をItem
に置き換えると、この問題を解決できる可能性があります。
次のようにカスタム要素タイプを宣言できます。
import * as React from 'react'
declare global {
namespace JSX {
interface IntrinsicElements {
item: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
}
}
}