Tengo un proyecto angular creado con nx . Quiero importar bibliotecas de JavaScript estándar que no tienen mecanografiados. Por ejemplo, quiero instalar y usar cytoscape y cytoscape-context-menus.
Recibo errores de compilación como
error TS7016: No se pudo encontrar un archivo de declaración para el módulo 'cytoscape-context-menus'. 'C:/dev/armo/armo-ng-app/node_modules/cytoscape-context-menus/cytoscape-context-menus.js' implícitamente tiene un tipo 'cualquiera'. Pruebe
npm i --save-dev @types/cytoscape-context-menussi existe o agregue un nuevo archivo de declaración (.d.ts) que contengadeclare module 'cytoscape-context-menus';
¿Cómo puedo resolverlos? Traté de poner archivos de declaración pero creo que mi configuración no los ve.
dado que no hay un paquete npm de definición de tipo disponible, debe escribir el suyo propio. comience con los que necesita y continúe construyendo sobre ellos según sea necesario.
si lo desea, también puede compartirlo como un paquete npm.
Encontré este artículo para escribir archivos de definición de tipo TypeScript por @dubtypescript: http://blog.wolksoftware.com/contributing-to-definitelytyped
también eche un vistazo a cómo se escribe el citoscopio desde aquí, tome prestadas sus formas: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/cytoscape/index.d.ts
Se agregó un stackblitz para pagar:
https://stackblitz.com/edit/cytoscape-6cyuem?file=src%2Fapp%2Fcytoscape-context-menus.d.ts