无法将(TS)类型'()=>字符串'分配给类型'字符串'

时间:2019-04-16 06:36:54

标签: typescript

我收到以下错误,我无法弄清为什么会抱怨。

  

错误TS2322(TS)类型'()=>字符串'无法分配给类型   “字符串”。

最近我发现有关此错误的信息是here,但是虽然错误相同,但情况并非如此。

我将定义为字符串的“ cssClasses”等同于返回字符串的匿名函数。这就是这个想法,该函数返回一个字符串,但其说法是“不能将字符串分配给字符串”

我该如何解决?

这是我的代码:

        for (let day = 0; day < numberOfDays; day++) {

        cssClasses = (): string => {

            if (day == calendarLayout.dayDifference) {
                return "cal-heading2-day-" + day.toString() + " " + cssToday;
            } else
                return ("cal-heading2-date-" + day.toString())
        }...

1 个答案:

答案 0 :(得分:1)

您的函数的正确键入如下:

const cssClasses: () => string = () => {
    if (day == calendarLayout.dayDifference) {
        return "cal-heading2-day-" + day.toString() + " " + cssToday;
    } else {
        return ("cal-heading2-date-" + day.toString());
    }
}

正如注释中正确指出的那样,您正在尝试将类型string分配给返回字符串的function,这是完全不同的。