使用类型作为索引器

时间:2018-11-10 01:15:36

标签: typescript

我设置了一个这样的枚举:

type Mode = 'Auto' | 'Manual';

我现在想创建一个对象,它们的键必须是Mode枚举中的字符串之一。

我尝试过:

class Form extends React.Component {

  fields: {
    [index: ExecutionMode]: string[]
  } = {
    Auto: [],
    Manual: [],
  };

但是这给了我错误:

  

[ts]索引签名参数类型不能为类型别名。考虑改写'[index:string]:string []'。

这可能是打字稿吗?

1 个答案:

答案 0 :(得分:3)

您在这里

type Mode = 'Auto' | 'Manual';

type Fields = {
    [K in Mode]: string[]
}

// inside your class:
fields: Fields = {
    Auto: [],
    Manual: []
} 

顺便说一句,您所说的“枚举”是“联合”。