首页 > 解决方案 > 打字减少方法

问题描述

我是 TS 的新手,无论我在做什么将这个 reduce 方法转换为 TS,逻辑中的某些东西都会出错。将不胜感激任何帮助!

nst dateConverter: any = (sec: any) => new Date(sec * 1000).toLocaleString('en-US', { hour: 'numeric', hour12: true });

export const timeLogic: React.FC = (obj: any) => Object.keys(obj).reduce<any>((Acc,Day,Idx,Src): any => {

    if ( obj[Day].length === 0 || ( obj[Day].length === 1 && obj[Day][0].type === 'close' ))
      Acc[Day] = <p>closed</p>
    else {
      let isOpen: any = false,
          isFirstClose = (obj[Day][0].type === 'close') ? 1 : 0;

      Acc[Day] = obj[Day].slice(isFirstClose).map((type: any,value: any): any => {
        isOpen = (type === 'open')
        return dateConverter(value)
        })
      if (isOpen) {
        let nextDay: any = Src[(Idx +1) % Src.length]
        Acc[Day].push( dateConverter(obj[nextDay][0].value) )
        }
        let ins: any = 0;
        Acc[Day] = Acc[Day].join(' - ').replace(/ -/g, (hyphen: any) => {
            return (ins++ % 2) ? ',' : hyphen;
          });
      }
    return Acc
    },{})

标签: typescript

解决方案


推荐阅读