强制两个打字稿对象具有相同的键

问题描述 投票:0回答:1

我想使用嵌套对象作为翻译的键。

interface TranslationObject {
  [key: string]: string | TranslationObject
}

对象的实例如下:

const en = {
   MAIN_MENU: {
       TITLE: 'Welcome'
   }
...
}

我有另一个变量 es,具有相同的键。有没有办法在类型级别强制执行此操作?

我当然可以写:

interface MyTranslation = {
   MAIN_MENU: {
       TITLE: string
  }
}
const es: MyTranslation = ...

但这不是我想要的,我想要的是自动且不需要维护的东西。比如:

const es: InferTheType(b) = ...
typescript
1个回答
0
投票
const en = {
    MAIN_MENU: {
        TITLE: 'Welcome'
    }
...
}

interface MyTranslation {
    [key in keyof typeof en]: {
        TITLE: string
    }
}

这个可能合适

© www.soinside.com 2019 - 2024. All rights reserved.