Estoy tratando de importar componentes de react-materialize como -
import {Navbar, NavItem} from 'react-materialize';
Pero cuando el paquete web está compilando .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.
Cualquier resolución para esto. No estoy seguro de cómo resolver esta declaración de importación para trabajar con un ts-loader
paquete web.
El index.js
de react-materialize se ve así. Pero, ¿cómo resolver esto para la importación del módulo en mis propios archivos?
https://github.com/react-materialize/react-materialize/blob/master/src/index.js
Respuestas:
Tuve un error similar pero para mí lo fue
react-router
. Lo resolvió instalando tipos para él.Error:
(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 desactivar al sitio que amplia su lugar, puede editar
tsconfig.json
y conjuntonoImplicitAny
afalse
.fuente
"noImplicitAny": false,
lo deshabilitó (obtuve este problema debido al uso de react-native init MyProject --template mecanografiado, al menos creo que sí) 👍yarn add @types/react-router --dev
Para aquellos que querían saber cómo superé esto. Hice una especie de truco.
Dentro de mi proyecto, creé una carpeta llamada
@types
y la agregué a tsconfig.json para encontrar todos los tipos requeridos. Así que se parece 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 :)
fuente
declare
declaraciones en un archivo llamado loindex.d.ts
arregló para mí. No tuve que tocar typeRoots.require
para otras cosas como imágenes. Básicamente, simplemente no te permite usarlorequire
para nada.nvalid module name in augmentation. Module 'some-dumb-lib-with-no-types' resolves to an untyped module at '/path/to/module', which cannot be augmented.
react-countdown-clock
creada@types
e hice todos los pasos anteriores. sigue recibiendo el mismo error.He tenido el mismo problema con los tipos react-redux. La solución más simple se agregó a tsconfig.json:
"noImplicitAny": false
Ejemplo:
{ "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"] }
fuente
IntelliJ
IDE, pero eltypeRoots
método personalizado (que es la respuesta aceptada) incluso funcionó enVS Code
IDESi no hay
@types/<package>
para el módulo que está utilizando, puede evitar fácilmente el problema agregando un// @ts-ignore
comentario arriba, es decir// @ts-ignore import { Navbar, NavItem } from 'react-materialize';
Alternativamente, puede crear lo que falta
@types/<package>
siguiente que :publicación de archivos de declaración
DefinitelyTyped ¿cómo puedo contribuir?
fuente
@types
disponible por cierto. Se creó un problema en el repositorio ... github.com/geelen/react-snapshot/issues/131En mi caso tuve un problema con reaccionar, así que comencé a hacer:
npm install @types/react
y luego al
npm install @types/react-dom
Esto funcionó para mi
fuente
Todo lo que necesita hacer es ejecutar el siguiente script. Luego, quite / reinstale el módulo que desea usar.
fuente
Tuve este problema cuando agregué
react-router-dom
la nueva aplicación CRA usando mecanografiado. Después de que agregué@types/react-router
, se solucionó el problema.fuente
Tuve este mismo problema pero no necesariamente relacionado con el mecanografiado, así que luché un poco con estas diferentes opciones. Estoy haciendo una aplicación create-react-app muy básica usando un módulo específico
react-portal-tooltip,
obteniendo un error similar:Primero probé muchos pasos: agregar varios
.d.ts
archivos, varias instalaciones de npm.Pero lo que finalmente funcionó para mí fue
touch src/declare_modules.d.ts
entoncessrc/declare_modules.d.ts
:declare module "react-portal-tooltip";
y en
src/App.js
:import ToolTip from 'react-portal-tooltip'; // import './declare_modules.d.ts'
Luché un poco con las diferentes ubicaciones para usar esta estrategia general de 'declarar módulo' (soy muy principiante), así que creo que esto funcionará con diferentes opciones, pero estoy incluido en las rutas para lo que funcionó.
Inicialmente pensé
import './declare_modules.d.ts'
era necesario. ¡Aunque ahora parece que no lo es! Pero incluyo el paso en caso de que ayude a alguien.Esta es mi primera respuesta de stackoverflow, así que me disculpo por el proceso disperso aquí y espero que aún haya sido útil. :)
fuente
Además, este error se soluciona si el paquete que está intentando usar tiene su propio archivo de tipo y está incluido en el atributo package.json
typings
Al igual que:
{ "name": "some-package", "version": "X.Y.Z", "description": "Yada yada yada", "main": "./index.js", "typings": "./index.d.ts", "repository": "https://github.com/yadayada.git", "author": "John Doe", "license": "MIT", "private": true }
fuente
Una forma más hacky es agregar, por ejemplo, en boot.tsx la línea
import './path/declare_modules.d.ts';
con
declare module 'react-materialize'; declare module 'react-router'; declare module 'flux';
en
declare_modules.d.ts
Funciona, pero otras soluciones son mejores en mi opinión.
fuente
Lo que hice fue ejecutar los siguientes comandos desde el símbolo del sistema de nodejs mientras estaba en el directorio de la carpeta del proyecto:
npm init
npm install -g webpack
npm install --save react react-dom @types/react @types/react-dom
npm install --save-dev typescript awesome-typescript-loader source-map-loader
npm install ajv@^6.0.0
npm i react-html-id
import UniqueId from 'react-html-id';
Hice lo anterior (aunque ya tenía npm instalado) y funcionó.
fuente
Para mi caso el problema era que los tipos no estaban recibiendo añaden al archivo package.json bajo devDependencies para solucionarlo me encontré
npm install --save-dev @types/react-redux
en cuenta la--save-dev
fuente
intente agregar al archivo tsconfig.json:
"noImplicitAny": false
funcionó para mífuente
funciona bien
fuente