Lorsque j'ajoute itemscope itemtype = "http://schema.org/Product"
à h1
, j'obtiens cette erreur:
Tapez '{children: string; itemscope: vrai; type d'élément: chaîne; }' n'est pas assignable au type 'DétailléHTMLProps
, HTMLHeadingElement> '. La propriété 'itemscope' n'existe pas sur le type 'DétailléHTMLProps , HTMLHeadingElement> '
<h1 itemscope itemtype="http://schema.org/Product">Amasia</h1>
Comment utiliser les microdonnées dans React + Typescript?
3 Réponses :
Pas très élégant, mais cela fonctionne:
// foo.d.ts declare namespace React { interface HTMLAttributes<T> { itemscope?: boolean; itemtype?: string; } } // app.tsx function foo(): JSX.Element { return ( <h1 itemscope itemtype="http://schema.org/Product"> Amasia </h1> ); }
Fonctionne pour moi (Typescript 3.4.5).
Si vous utilisez dactylographié, vous devez écrire comme ceci
<h1 itemScope itemType={"http://schema.org/Product"}>{...}</h1>
Pour React, il est sensible à la casse. Faites attention à: itemScope
et itemType
orthographe
<div itemScope itemType={"http://schema.org/Product"}>{...}</div>
React lui-même prend en charge cela , à partir de la version 16 . Le problème vient des définitions de TypeScript, semble-t-il.