代码如下:
export type Period = 'dy' | 'wk' | 'mn' | 'qt' | 'yr';
const periods: Record<Period, string> = {
dy: 'Day',
wk: 'Week',
mn: 'Month',
qt: 'Quarter',
yr: 'Year'
};
当我尝试这样做时:
const key = Object.keys(periods).find(key => periods[key] === 'Day');
我当然会出错,因为periods[key]
无法保证key
的类型正确。我该如何真正去做呢?我想到了一个枚举,但是我无法进行反向查找。我要实现的只是一个输入字段,该字段显示“ Day”,但具有键dy
(等等),可以将状态设置为正确的键,而不是在用户选择另一个值时的值。
答案 0 :(得分:1)
router_generate
返回Object.keys
而不是string[]
(其中Array<keyof T>
是传入值的类型)。 here概述了其原因。
由于您的对象可能不会具有未知的键,因此可以使用类型断言:
T