const OrderStatus = {
AWAITING_PAYMENT: {
value: 'AWAITING_PAYMENT',
label: '待支付'
},
AWAITING_DELIVER: {
value: 'AWAITING_DELIVER',
label: '待发货'
},
...
} as const
现在 OrderStatus.AWAITING_PAYMENT 是有类型提示 { value: 'AWAITING_PAYMENT', label: '待支付' } 的,我想写一个方法转换一下这个结构,变成
const OrderStatusEnum = {
AWAITING_PAYMENT: 'AWAITING_PAYMENT',
AWAITING_DELIVER: 'AWAITING_DELIVER'
} as const
转换方式是这样写的:
const OrderStatusEnum = Object.keys(OrderStatus).reduce((acc, key) => {
acc[key] = OrderStatus[key].value
return acc
}, {})
但是这样的方式 OrderStatusEnum 是没有类型提示的,怎么定义类型才能让 OrderStatusEnum.AWAITING_PAYMENT 会提示 'AWAITING_PAYMENT'?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.