Never

    一个关于 never 的介绍视频

    程序语言的设计确实应该存在一个底部类型的概念,当你在分析代码流的时候,这会是一个理所当然存在的类型。TypeScript 就是这样一种分析代码流的语言(?),因此它需要一个可靠的,代表永远不会发生的类型。

    但是,never 类型仅能被赋值给另外一个 :

    很棒,现在让我们看看它的关键用例。

    与 void 的差异

    一旦有人告诉你,never 表示一个从来不会优雅的返回的函数时,你可能马上就会想到与此类似的 void,然而实际上,void 表示没有任何类型, 表示永远不存在的值的类型。

    当一个函数没有返回值时,它返回了一个 void 类型,但是,当一个函数根本就没有返回值时(或者总是抛出错误),它返回了一个 nevervoid 指可以被赋值的类型(在 strictNullChecking 为 false 时),但是 never 不能赋值给其他任何类型,除了 。