Igo*_*nko 9 javascript arrays reduce typescript
我正在用一些 func 生成具有时间间隔的对象,它返回
["00:00","00:30","01:00"]
... ,但为了我的目的,我需要 obj-map
{{"00:00": "00:00"}, {"00:30":"00:30"}, {"01:00":"01:00"}}
我在下面输入 reduce func 时遇到问题,我如何输入 acc 或 func 的返回值到避免使用any
as 类型 for acc
?
generateTimeIntervals(0, 1440, 30).reduce((acc, val) => {
acc[val] = val;
return acc;
}, {})
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 19
我如何输入 acc 或 func 的返回值以避免使用 any 作为 acc 类型?
例如,您可以通过提供{}
您提供的种子Record<string, string>
的类型来做到这一点(但确切的类型不是这里的重点,重点是分配类型是您按照您的要求执行的操作):
let result = generateTimeIntervals(0, 1440, 30).reduce((acc, val) => {
acc[val] = val;
return acc;
}, {} as Record<string, string>)
Run Code Online (Sandbox Code Playgroud)
TypeScript 将能够充分遵循reduce
调用的逻辑,从而基于此为您键入返回值。
从您的reduce
代码是否还需要进行一些调整的问题中,我并不完全清楚,但这是一个不同的问题......
cas*_*hol 17
您可以将类型作为参数传递给reduce
:
let result = generateTimeIntervals(0, 1440, 30).reduce<Record<string, string>>((acc, val) => {
acc[val] = val;
return acc;
}, {})
Run Code Online (Sandbox Code Playgroud)