web-dev-qa-db-fra.com

La propriété est manquante dans l'erreur de type

J'ai un problème avec le travail avec une démo React project. La plupart des problèmes viennent de moi essayant de l'implémenter dans TypeScript où ils utilisent Javascript. Ce Gist est mon fichier app.tsx.

https://Gist.github.com/jjuel/59eed01cccca0a7b4f486181f2a14c6c

Lorsque je lance cela, j'obtiens des erreurs concernant l'interface.

ERREUR dans ./app/app.tsx (38,17): erreur TS2324: la propriété "humains" est manquante dans le type "IntrinsicAttributes & IntrinsicClassAttributes & AppProps & {children ?: ReactElement | ...".

ERREUR dans ./app/app.tsx (38,17): erreur TS2324: la propriété "magasins" est manquante dans le type "IntrinsicAttributes & IntrinsicClassAttributes & AppProps & {children?: ReactElement | ...". webpack: le bundle est maintenant VALIDE.

Je n'ai aucune idée de ce qui se passe avec ça. Quelqu'un sait-il quel pourrait être mon problème? Merci!

12
j5juice

Vous disposez de l'interface suivante:

interface AppProps {
    humans: any;
    stores: any;
}

Vous dites que App doit être passé dans humans et stores. Cependant, vous l'initialisez comme <App /> Dans ReactDOM.render(<App />, document.getElementById('main'));sans les propriétés. Il s'agit de TypeScript qui vous fournit des erreurs sur ce que vous avez dit être l'utilisation prévue . C'est une erreur comme avoir une fonction avec des arguments mais l'appeler sans en passer.

Réparer

Peut-être que ces propriétés sont facultatives pour vous? Si tel est le cas, déclarez-le comme tel:

interface AppProps {
    humans?: any;
    stores?: any;
}

Sinon, fournissez-les par exemple <App humans={123} stores={123} /> (Exemples d'instances d'humains et de magasins).

34
basarat