对象的Typescript类型,其属性值应与属性名称匹配吗?

时间:2020-08-12 10:21:12

标签: typescript typescript-typings

是否可以为应该为其values与其属性名称相等的对象定义Typescript类型?

赞:

const ACTION_TYPES= {
  UPDATE_STATE_A: "UPDATE_STATE_A",
  UPDATE_STATE_B: "UPDATE_STATE_B",
  UPDATE_STATE_C: "UPDATE_STATE_C",
  // AND SO ON...
}

注意:都是字符串。属性和值。

如何定义这种类型?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的:

type StrangeType<T extends {[key:string]:string}> = {
  [key in keyof T]: key
}

const test: StrangeType<{name:'t'}>= {
  name: 'name'
}