1
votes

Comment trouver une déclaration pour mon module dactylographié / react?

Je suis très (très) nouveau dans les technologies frontend, spécialement react et dactylographié.

Mon problème vient quand j'essaye de faire une chose simple qui est d'utiliser un composant de réaction https://github.com/ckeditor/ckeditor5

Je suis donc allé aux exemples et j'ai trouvé ceci:

https://github.com/ckeditor/ckeditor5- react-example / blob / master / package.json

J'essaie d'inclure le ckeditor avec le module ClassicEditor p >

J'ai donc ajouté ceci sur mon package.json

import CKEditor from '@ckeditor/ckeditor5-react';

// NOTE: We use editor from source (not a build)!
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';

et j'ai vérifié l'implémentation ici https://github.com/ckeditor/ckeditor5-react-example/blob/master/src/App.js

J'ai besoin d'importer la définition du module pour dactylographié (je suppose)

"@ckeditor/ckeditor5-editor-classic": "^12.0.0",
"@ckeditor/ckeditor5-essentials": "^11.0.0",
"@ckeditor/ckeditor5-paragraph": "^11.0.0",
"@ckeditor/ckeditor5-react": "^1.1.2",

Donc, cette partie a cette note étrange, mais il arrive que cela ne fonctionne pas dans mon projet (dit qu'il manque et ne peut pas le trouver)

Toute idée de ce que je pourrais faire d'autre l'ajouter? J'ai essayé de supprimer la partie / src / classiceditor mais il manque toujours.

J'ai fait une installation npm et je peux voir le code classiceditor ici avec package.json et plus ... le dossier / src / classiceditor existe en fait node_modules avec /@ckeditor/ckeditor5-editor-classic/src/classiceditor.js p>

Une idée de ce qui me manque?


0 commentaires

3 Réponses :


3
votes

Il semble que @ ckeditor / ckeditor5-react ne fournit aucun type et n'est pas saisi dans DefinatelyTyped , vous ne pouvez donc pas l'utiliser aussi facilement avec un script dactylographié.

Si vous voulez utiliser @ ckeditor / ckeditor5-react code> avec les types, vous devrez le taper vous-même.

Exemple pour cela:

dans votre projet, déclarez un fichier types / @ ckeditor / ckeditor5-react / index.d.ts . Dans ce fichier, ajoutez ce type (très incomplet):

export function UseCKE() {
    return <Ckeditor disabled={true}/>;
}

De cette façon, vous pourrez utiliser CKeditor dans votre application de réaction de cette façon:

declare module '@ckeditor/ckeditor5-react' {
    export default class Ckeditor extends React.Component {
        constructor({disabled}: {disabled?: boolean}) // this part needs to be fullfilled with your needs
    }
}


3 commentaires

J'ajouterai un petit exemple dans la réponse sous peu


@ jpganz18: exemple ajouté


Merci pour la mise à jour, suite à votre idée, j'ai ajouté un fichier avec ce module de déclaration '@ ckeditor / ckeditor5-build-classic' {const ClassicEditorBuildLocal: any; export = ClassicEditorBuildLocal; } mais lors de l'ajout de ClassicEditorBuildLocal j'obtiens toujours l'erreur .... CkEditor est déjà importé (et fonctionne) mais le manquant est seulement le ckeditor5-build-classic ... qu'est-ce que je pourrais manquer? l'erreur que j'obtiens est que je ne peux pas résoudre '@ ckeditor / ckeditor5-build-classic'



4
votes

pour toute autre personne ayant le même problème, vous essayez également de déclarer un fichier types/@ckeditor/index.d.ts et d'ajouter le contenu suivant

declare module '@ckeditor/*' {
  const classes: any;
  export default classes;
}

la réponse acceptée n'a pas fonctionné pour moi lorsque vous traitez avec @ckeditor/ckeditor5-build-classic


0 commentaires

1
votes

Pour ceux qui recherchent toujours une meilleure solution, j'ai trouvé cette solution sur Github .

vous devez créer le fichier ./types/ckeditor/index.d.ts et écrire dans

declare module '@ckeditor/ckeditor5-react';
declare module '@ckeditor/ckeditor5-build-classic';

p >


0 commentaires