You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript手册中`never[]`参数类型的含义及示例使用疑问

关于TypeScript中never[]参数类型的含义及示例中的使用原因

一、never[]的含义

  • never是TypeScript的底层类型,用来表示永远不会被赋值的类型,比如抛出异常、无限循环的函数返回值,或是永远不会执行到的代码分支的类型。
  • never[]是元素类型为never的数组,这种数组只能是空数组[]——因为没有任何值能符合never类型的要求,所以你无法向never[]中添加任何元素。

二、示例中使用never[]的原因

这个GetReturnType类型的核心目的是提取任意函数的返回值类型,完全不关心函数的参数是什么。在条件类型的模式Type extends (...args: never[]) => infer Return中:

  • (...args: never[])只是用来占据函数参数列表的位置,明确我们要匹配的是“函数类型”这个结构,而非具体的参数类型。
  • 选择never[]而非any[]或其他类型,是因为never是最严格的类型,不会引入任何意外的类型兼容问题,同时清晰传达了“我们不需要捕获或使用参数类型”的意图——毕竟never[]无法适配任何非空参数列表,这里只是用它做模式匹配的占位符,让TypeScript专注于推断函数的返回值部分。
  • 举个例子,当我们传入(x: string) => string时,TypeScript会自动忽略参数x: string的细节,只匹配“函数”这个结构,然后推断出返回值是string,最终Str的类型就是string。

内容的提问来源于stack exchange,提问作者NeoZoom.lua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:42:44