我有下面的模型
interface Budget {
budget_july?: number,
budget_august?: number,
budget_september?: number,
budget_october?: number,
budget_november?: number,
budget_december?: number,
budget_january?: number,
budget_february?: number,
budget_march?: number,
budget_april?: number,
budget_may?: number,
budget_june?: number
}我试图使用变量动态访问该属性,如下所示:
const budgets: Budget[] = [];
var datestr = '2022-07-01';
const budget_month: keyof Budget = 'budget_' + new Date(datestr).toLocaleString('default', { month: 'long' }).toLowerCase();
budgets[0][budget_month] = 5000;在这里我得到了错误:输入'string‘不能分配到键入'keyof预算内’
以下作品:
const budget_month = 'budget_july'; budgets[0][budget_month] = 5000;我已经想出了一个解决办法,用开关/机箱,但它很难看。有可能像我在这里那样工作吗?
发布于 2022-06-26 07:56:38
类型记录无法跟踪所有的字符串转换,并且知道它在末尾将是一个keyof Budget。
我认为您最好使用将string转换为keyof Budget的类型断言。
const budget_month =
'budget_' +
new Date(datestr)
.toLocaleString('default', { month: 'long' })
.toLowerCase() as keyof Budget;https://stackoverflow.com/questions/72759572
复制相似问题