为什么throw会使功能端点无法访问?

时间:2019-05-22 09:25:48

标签: typescript

typescript中,类型为never的用例是函数的端点不可达。但是我不明白为什么throw语句使函数具有无法到达的端点。

function error(message: string): never {
    throw new Error(message);
}

有人可以解释为什么吗?

1 个答案:

答案 0 :(得分:2)

您的error函数永远不会正常完成,因为它总是会引发错误而不是正常完成:

function error(message: string): never {
    throw new Error(message); // <====== Terminates with an error here
                              // <====== Never gets here
}

error("foo");
// Execution never reaches this point

这意味着它永远不会有返回值,因此类型never用于注释该事实。