Estoy usando react-i18next con React y TypeScript . Si trato de cargar una propiedad usando un literal de cadena y una inferencia de tipo, funciona correctamente. Sin embargo, si especifico el tipo de string , se arroja el error.
i18n.ts
import ns1 from './locales/en/translation.json'; import { initReactI18next } from 'react-i18next'; import i18n from 'i18next'; export const defaultNS = 'ns1'; export const resources = { en: { ns1 } } as const; i18n.use(initReactI18next).init({ lng: 'en', ns: ['ns1', 'ns2'], defaultNS, resources });reaccionar-i18next.d.ts
import { resources, defaultNS } from './i18n'; // react-i18next versions higher than 11.11.0 declare module 'react-i18next' { interface CustomTypeOptions { defaultNS: typeof defaultNS; resources: typeof resources['en']; } }traducción.json
{ "title": "Welcome to react using react-i18next", "description": { "part1": "To get started, edit <1>src/App.js</1> and save to reload.", "part2": "Switch language between english and german using buttons above." } }código de trabajo
import { useTranslation } from 'react-i18next'; const t = useTranslation().t; const title = 'title'; // "Welcome to react using react-i18next" console.log(t(title));Ninguna sobrecarga coincide con esta excepción de llamada
import { useTranslation } from 'react-i18next'; const t = useTranslation().t; const title: string = 'title'; // No overload matches this call exception console.log(t(title)); ¿Cómo puedo traducir una variable de string donde se especifica el tipo?