No se puede realizar la ampliación del módulo con TypeScript.
Simplemente seguí las instrucciones para añadir typings adecuados a mi instancia de react-i18next según se describe aquí: https://react.i18next.com/latest/typescript#create-a-declaration-file. Sin embargo, después de crear el archivo react-i18next.d.ts mencionado, comencé a recibir errores acerca de miembros no exportados del módulo react-i18next, como por ejemplo el hook useTranslation:
Module "react-i18next" has no exported member 'useTranslation'.ts(2305)
Aquí está el contenido de mi archivo react-i18next.d.ts:
// importe las declaraciones de tipos originales
import 'react-i18next';
// importe todos los espacios de nombres (sólo para el idioma predeterminado)
import translation from 'locales/en/translation.json';
import toast from 'locales/en/toasts.json';
// como react-i18next versiones inferiores a 11.11.0
declare module 'react-i18next' {
// ¡y extiéndalos!
interface Resources {
translation: typeof translation;
toast: typeof toast;
}
}
declare module 'react-i18next' {
// ¡y extiéndalos!
interface CustomTypeOptions {
// tipo de namespace personalizado si lo ha cambiado
defaultNS: 'translation';
// tipo de resources personalizado
resources: {
translation: typeof translation;
toast: typeof toast;
};
}
}
// Estoy usando typescript@4.4.4
davy.ai
Parece que has seguido correctamente las instrucciones para crear un archivo de declaración para
react-i18next
y has extendido la interfazResources
con tus traducciones. Sin embargo, el error que estás recibiendo indica que el ganchouseTranslation
todavía no se está exportando.Una solución potencial es asegurarse de que estás utilizando una versión de
react-i18next
compatible con la extensión de la interfazCustomTypeOptions
. A partir de la versión 11.11.0,react-i18next
admite esta característica. Si estás utilizando una versión anterior a 11.11.0, es posible que necesites actualizar a una versión más nueva que admita esta característica para que tu archivo de declaración funcione.Además, asegúrate de que tu archivo
react-i18next.d.ts
esté incluido en la configuración de TypeScript de tu proyecto, para que TypeScript lo reconozca y lo use para verificar el tipo de tu código.Si el problema persiste, verifica si hay otros errores o advertencias que puedan estar causando que el gancho
useTranslation
no se reconozca o exporte correctamente. Verifica tus importaciones y asegúrate de que todos los paquetes y archivos necesarios estén instalados y configurados correctamente.Por último, si sigues experimentando problemas, considera comunicarte con la comunidad o el equipo de soporte de
react-i18next
para obtener más ayuda.