React TypeScript项目useTranslation传keyPrefix出现参数类型不匹配错误
问题修复方案
按以下优先级排查修改即可解决:
- 首先修正翻译文件结构错误:i18next要求翻译资源为纯对象格式,你当前JSON外层多包裹了一层数组,删除外层数组即可:
{ "homepage": { "ctaSection": { "header": "some thing" } } }
- 统一翻译key的大小写:代码中调用
t('Header')使用大写H开头的key,和翻译文件中定义的小写h开头header不匹配,二选一修改即可:- 代码调用改为
t('header') - 翻译文件key改为
"Header": "some thing"
- 代码调用改为
- 若仍存在TypeScript类型报错,补充i18next类型声明:在项目中新建
i18next.d.ts类型定义文件,写入以下内容,替换为你的翻译文件实际路径即可:
import 'i18next'; declare module 'i18next' { interface CustomTypeOptions { resources: { translation: typeof import('./path/to/your/translation.json'); }; } }
内容的提问来源于stack exchange,提问作者Singh
相关产品推荐
相关产品推荐

