我正在尝试为用于强制执行返回类型的函数获取正确的声明,但似乎无法正确执行。
在此示例中,我希望功能更新程序的行为类似于功能updater2,但是如果要具有功能声明,我希望操作简便。
有人可以指出我哪里出了问题吗?
dftoHTML(DF)
答案 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; }
。