首页 > 解决方案 > 来自 typeof 对象的打字稿接口

问题描述

我们正在使用 react-i18next 进行翻译,它们允许您覆盖类型,以便您可以使用 ts 来验证您的密钥——它工作得很好,除了 1 个事实。假设我们在common.json(又名公共命名空间)中有这个 json 对象

{
   "first": "first",
   "nested": {
       "second": "Second"
    }
}

当您获取该对象的类型并将其用作接口时,您将获得键common:firstcommon:nested.second

一旦它是第二级,它就会变成点表示法。是否可以告诉 typescript 一直使用:下去,因为我们所有的翻译都是common:nested:second. 我们已经准备好改变我们的翻译——但最好避免它。任何帮助将不胜感激。

仅供参考,这里是我们如何向 react-i18next 提供类型(来自他们的文档)

import 'react-i18next';
declare module 'react-i18next' {
    export interface Resources {
        common: typeof import('./common.json');
    }
}

标签: typescripti18nextreact-i18next

解决方案


推荐阅读