在打字稿函数声明中正确声明函数返回类型

时间:2019-08-31 19:59:35

标签: typescript

我正在尝试为用于强制执行返回类型的函数获取正确的声明,但似乎无法正确执行。

在此示例中,我希望功能更新程序的行为类似于功能updater2,但是如果要具有功能声明,我希望操作简便。

有人可以指出我哪里出了问题吗?

dftoHTML(DF)

1 个答案:

答案 0 :(得分:1)

这里的问题是Typescript类型推断。它正在分析函数的返回类型,并且:{ foo: number; name: string; }可分配给{ name: string; }name道具比赛。

要获得所需的结果,您需要一点帮助编译器:

const updater: Updater = (old): State => {
  return {
    ...old,
    // this line generates no error
    foo: 1
  };
}

这样,您就可以明确意图了。您的函数必须返回{ name: string; }