TypeScript 中的 never 类型:如何使用

阅读时长 5 分钟读完

在 TypeScript 的开发中,never 是一个非常特殊的类型。虽然它似乎没有什么特别的用处,但实际上,正是由于它的特殊用途,使得 TypeScript 中的一些高级类型操作得以实现。本文将详细介绍 never 类型的作用和使用方法。

什么是 never 类型

never 是 TypeScript 的一种特殊类型,表示一个永远不可能出现的值。它是所有类型的子类型,也就是说,任何类型都可以赋值给 never 类型。

never 类型在函数类型中非常有用,可以用来表示不可达代码的情况。比如一个函数中抛出错误的语句,这时候返回的就可以是 never 类型。又比如一个永远无法结束的死循环函数,它也返回的是 never 类型。

如何使用 never 类型

下面通过一些示例代码来说明 never 类型的使用。

示例-1: 抛出错误的函数

示例-2: 永远无法结束的函数

示例-3: 类型守卫

TypeScript 中的类型守卫可以用来保证类型的正确性,在某些情况下,当我们的类型守卫都执行完毕之后,就会得到一个从未见过的类型。此时,我们就可以使用 never 类型去处理它。

-- -------------------- ---- -------
---- --------- - ------ - ------ - --------

-------- --------------- ----------- ----- -- ------ -
  ------ ------ ----- --- ---------
-

-------- --------------- ----------- ----- -- ------ -
  ------ ------ ----- --- ---------
-

-------- ---------------- ----------- ----- -- ------- -
  ------ ------ ----- --- ----------
-

-------- ------------------- ---------- -
  -- ----------------- -
    ---------------------------------
  - ---- -- ----------------- -
    ------------------------------
  - ---- -- ------------------ -
    ----------------- - ----- - ------
  - ---- -
    ----- ------ ----- - ------
  -
-

示例-4: 类型推导

never 类型在一些类型推导和类型操作中也非常有用。比如在下面的例子中,使用 never 类型,通过过滤操作来获取一个数组中的 never 类型。

示例-5: 写一个全面的类型保护函数

在写一些高级的 TypeScript 程序时,可能会需要写一些全面的类型保护函数。这时候,我们就可以使用 never 类型来强制要求编译器对每一种情况都有覆盖。

-- -------------------- ---- -------
---- ---------- - ------ - ------ - ------- - ---- - ----------

-------- ------------- ------------ ----- -- ---- -
  ------ ----- --- -----
-

-------- ------------------ ------------ ----- -- --------- -
  ------ ----- --- ----------
-

-------- -------------------- ------------ ----- -- -- -
  ------ ------ ----- --- -------- -- ----- --- ---- -- ------------------------- --- --
-

-------- -------------- ------- ------------------ --- ----- -- - -
  -- -------------- -- ------------------- -
    ------ -----
  - ---- -- ---------------------- -
    ------ -----
  - ---- -- ------- ----- --- -------- -- ------ ----- --- -------- -- ------ ----- --- ---------- -
    ------ -----
  -

  ----- ------ ----- - ------

  ------ ------
-

总结

never 类型在 TypeScript 中是非常重要的,它可以用来表示一些不可能发生的情况。在函数类型、类型推导以及类型守卫中,never 类型都有着非常重要的使用场景。希望本文对读者们有所帮助,让大家更好的理解 never 类型的使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/652c91df7d4982a6ebe3daa5

纠错
反馈