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

如何无需中间函数变量定义包含所有typeof返回值的TypeScript类型?

实现方案

方案1:最稳妥的硬写联合类型

ECMAScript规范明确规定了typeof运算符所有可能的返回值只有固定8种,该集合已经多年没有更新,维护成本极低,同时可读性是所有方案中最高的:

type TypeofResult = "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"

该类型和你通过辅助函数得到的T0完全等价。

方案2:无需硬写也无需中间变量的推导写法

如果你不想手动枚举所有返回值,也可以通过类型层面的匿名函数类型配合ReturnType实现,全程不需要定义任何辅助函数或变量:

type TypeofResult = ReturnType<(value: any) => typeof value>

这里的(value: any) => typeof value是仅在类型层面生效的匿名函数类型定义,ReturnType会直接提取它的返回值类型,最终得到的结果和你原实现的T0完全一致。

内容的提问来源于stack exchange,提问作者Velocirooster

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:27:00