如何定义一个无法在TypeScript中返回任何内容的函数

时间:2017-10-30 15:37:27

标签: function typescript return-type

我正在编写一个API,它有两个非常相似的函数:

function update(f: () => string) {...}
function updateDeep(f: () => void) {...}

正如您所看到的,我正在尝试确保我的API的客户端根据他们调用的函数传递正确的函数类型。

第一个函数update按预期工作。这将正确地抛出编译错误:

update(() => console.log('hey'));

第二个函数updateDeep虽然应该抛出一个编译错误事件:

updateDeep(() => 'hey');

如何声明一个不返回任何内容的函数类型?

1 个答案:

答案 0 :(得分:3)

实现这一目标是不可能的。作为函数的接收者,您唯一的能力是在提供的函数类型上设置 lower

另请参阅TypeScript FAQ条目:https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-functions-returning-non-void-assignable-to-function-returning-void