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

问题描述

是否可以为应该为其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...
}

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

如何定义这种类型?

解决方法

是的,这是可能的:

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...