Estoy tratando de importar componentes de reaccionar-materializar como -
import {Navbar, NavItem} from 'react-materialize'; Pero cuando el paquete web está compilando mi .tsx , arroja un error para lo anterior como:
ERROR in ./src/common/navbar.tsx (3,31): error TS7016: Could not find a declaration file for module 'react-materi alize'. 'D:\Private\Works\Typescript\QuickReact\node_modules\react-materialize\l ib\index.js' implicitly has an 'any' type. ¿Hay alguna resolución para esto? No estoy seguro de cómo resolver esta declaración de importación para que funcione con ts-loader y webpack.
El index.js de react-materialize se parece a esto. Pero, ¿cómo resuelvo esto para la importación del módulo en mis propios archivos?
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
Tuve un error similar, pero para mí fue react-router . Lo resolvió instalando tipos para él.
npm install --save @types/react-routerError:
(6,30): error TS7016: Could not find a declaration file for module 'react-router'. '\node_modules\react-router\index.js' implicitly has an 'any' type. Si desea deshabilitarlo en todo el sitio, puede editar tsconfig.json y establecer noImplicitAny en false .
Para aquellos que querían saber cómo superé esto. Hice un truco tipo de cosas.
Dentro de mi proyecto, creé una carpeta llamada @types y la agregué a tsconfig.json para encontrar todos los tipos requeridos. Entonces se parece un poco a esto:
"typeRoots": [ "../node_modules/@types", "../@types" ] Y dentro de eso creé un archivo llamado alltypes.d.ts . Para encontrar los tipos desconocidos de él. así que para mí estos eran los tipos desconocidos y los agregué allí.
declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';Así que ahora el mecanografiado ya no se quejaba de los tipos que no se encontraban. :) situación de ganar-ganar ahora :)
He tenido el mismo problema con los tipos react-redux. La solución más simple fue agregar a tsconfig.json:
"noImplicitAny": false { "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "isolatedModules": true, "jsx": "react", "lib": ["es6"], "moduleResolution": "node", "noEmit": true, "strict": true, "target": "esnext", "noImplicitAny": false, }, "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"] }