我正在用某个函数生成带有时间间隔的对象,它返回["00:00", "00:30", "01:00"]
...,但是为了我的目的,我需要有obj-map {{ "00:00": "00:00" }, { "00:30": "00:30" }, { "01:00": "01:00" }}
。
我在输入下面的reduce函数时遇到了问题。如何输入acc
或函数的返回值,以避免使用any
作为acc
的类型?
generateTimeIntervals(0, 1440, 30)
.reduce((acc, val) => {
acc[val] = val;
return acc;
}, {})
2条答案
按热度按时间ki1q1bka1#
我如何键入acc或func的返回值以避免使用any作为acc的类型?
你可以通过提供你所提供的
{}
种子的类型来实现这一点,例如Record<string, string>
(但确切的类型并不是这里的重点,重点是如何分配一个类型才是你所要求的):TypeScript将能够充分遵循
reduce
调用的逻辑,从而基于此为您键入返回值。或者,不要使用
reduce
,而只需键入result
:vh0rcniy2#
可以将类型作为参数传递给
reduce
:请看下面的例子:www.example.comhttps://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABAcwKZlQJwIZVQFRgFtUBJMPTAN2wBsBnACmwC4wQiAjLAGkU5aJ2XXogiDh3TAEpEAbwCwAKESJMqKCExIA2stWqAylEwwwyZtL7HT5xpyuIbZixGn7EAXWUBfZctoNNVR6EFooRABeFHQsXAJiMgosGgZGAAY+AEYAFhzMxABmdOkAOnUAExAIVAAeACVUCDhMCtr6Exc+DttkAD4+xmYICD5U2Ui++Q9sEZ1UzyjEVIBuD3VNbURZiDWlHz45H3clZWawejhA0to4CwAidVDw+74nsKhpIA