2 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
我能想到的唯一方法是對(duì)常量使用 const 斷言Inputs:
const Inputs = [
{label: "myInput1", id: "myId1"},
{label: "myInput2", id: "myId2"},
] as const;
type InputIds = typeof Inputs[number]['id'];
function getInputValues(): Record<InputIds, number> {
return Inputs.reduce((acc, item) => {
return {...acc, [item.id]: 123};
}, {} as Partial<Record<InputIds, number>>) as Record<InputIds, number>;
}

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
您所能期望的最好的是Record<string, number>
。
const?getInputValues?=?():Record<string,number>?=>? ????Inputs.reduce(?(acc,?item)?=>?({...acc,?[item.id]?:?123??}),?{})
為了更好的類型安全,您可以選擇Record<string, number | undefined>
強(qiáng)制您對(duì)訪問的任何值進(jìn)行類型檢查。
添加回答
舉報(bào)