J'utilise TypeScript pour écrire une application redux.
var item = React.createClass({
render: function() {
return (<div>hello world</div>)
}
});
export default class ItemList extends Component<any, any> {
render() {
return (<item />)
}
}
Alors TypeScript se plaint de ceci:
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 />)
}
}
En effet, le nom de votre composant item
ne commence pas par une majuscule, ce qui fait que TypeScript se plaint. Le remplacement de item
par Item
pourrait résoudre ce problème.
Vous pouvez déclarer votre type d'élément personnalisé comme ceci:
import * as React from 'react'
declare global {
namespace JSX {
interface IntrinsicElements {
item: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
}
}
}