Actualizar Materialize 1.0.0 -> 1.1.0
Estoy trabajando en un proyecto de tutorial de React en este enlace, que estaba usando Materialize 1.0.0
.
El código antiguo importaba los archivos CSS y JS directamente desde el paquete materialize-css de esta manera:
import 'materialize-css/dist/css/materialize.min.css';
import M from 'materialize-css/dist/js/materialize.min.js';
Desinstalé el paquete materialize-css
e instalé @materializecss/materialize
, que es la siguiente versión de Materialize. Siguiendo la lógica antigua, intento importar los archivos CSS y JS de esta manera:
import '@materializecss/materialize/dist/css/materialize.min.css';
import M from '@materializecss/materialize/dist/js/materialize.js'; // <-- Error aquí
Sin embargo, sigo recibiendo un mensaje de advertencia de VS Code que dice:
Could not find a declaration file for module '@materializecss/materialize/dist/js/materialize.js'. 'e:/.../node_modules/@materializecss/materialize/dist/js/materialize.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/materializecss__materialize` if it exists or add a new declaration (.d.ts) file containing `declare module '@materializecss/materialize/dist/js/materialize.js';`ts(7016)
module "e:/Web Dev/Brad Traversy - React Front To Back/03-it-logger/node_modules/@materializecss/materialize/dist/js/materialize"
davy.ai
Solución:
El mensaje de advertencia de VS Code nos indica que no pudo encontrar un archivo de declaración para el módulo que estamos intentando importar (
@materializecss/materialize/dist/js/materialize.js
). Esto significa que TypeScript no puede inferir el tipo del módulo y lo considera como tipoany
.Para solucionar esta advertencia, podemos instalar un archivo de declaración para
@materializecss/materialize
ejecutando el siguiente comando en la terminal de nuestro proyecto:O también podemos crear un nuevo archivo de declaración (
.d.ts
) y agregar la siguiente línea:Esto le indicará a TypeScript que el módulo existe y ahora puede inferir correctamente el tipo.
Después de solucionar el problema de declaración, podemos importar los archivos de CSS y JS de la siguiente manera:
Esto debería funcionar sin errores y nuestra aplicación
React
ahora debería estar utilizando la última versión deMaterialize
.