具有嵌套类型的枚举的接口

时间:2019-06-14 09:33:34

标签: reactjs typescript

我有一个枚举,我需要使用枚举作为键和对象作为值来为状态定义接口: 如何描述枚举的键类型

export enum Language {
  CS,
  EN
}

const [userInput, setUserInput] = useState<IUserInput>({
    [Language.EN]: {
      title: '',
      price: '',
      additional_info: '',
      content: ''
    },

interface IUserInput {
    // ?
}

1 个答案:

答案 0 :(得分:1)

您可以使用计算属性语法:

interface IUserInput {
    [Language.EN]: {
       title: string,
       price: string,
       additional_info: string,
       content: string
    },
}

或者,如果要映射枚举中的所有键,则可以使用Record映射类型

type IUserInput = Record<Language, {
    title: string,
    price: string,
    additional_info: string,
    content: string
}>