Javascript Typescript:创建类型,确保值在数组中

Javascript Typescript:创建类型,确保值在数组中,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有反对意见 const AllTranslations = { ACCEPT: { en: "Accept this", de: "Akzeptieren" }, UNKNOWN_ERROR: { en: "Unexpected error occurred" } }; 我有这种类型的 export type TransKey=keyof typeof all translations 我有一

我有反对意见

const AllTranslations = {
  ACCEPT: {
    en: "Accept this",
    de: "Akzeptieren"
  },
  UNKNOWN_ERROR: {
    en: "Unexpected error occurred"
  }
};
我有这种类型的
export type TransKey=keyof typeof all translations

我有一个translate函数,它接收TransKey类型的prop,如果给定的字符串在所有translates中不作为key存在,我希望它抛出错误。这适用于给定的代码

现在,如果缺少“en”或“de”,我还希望typescript抛出错误,如果我将所有翻译的类型作为记录,就可以这样做。但问题是,TransKey类型现在实际上只是字符串,我可以将任何字符串传递给translate函数,它不会抱怨

有什么办法可以同时兼顾两者?如果在所有翻译中没有给定的键(例如接受),翻译功能会投诉,如果在所有翻译中缺少en或de,ts也会投诉

我可以用object.keys获取键数组,例如[“ACCEPT”、“UNKNOWN、ERROR”],但不知道是否可以自动创建类似“ACCEPT”|“UNKNOWN_ERROR”的类型

请共享您迄今为止完成的工作(代码)请共享您迄今为止完成的工作(代码)