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

TypeScript中() => void与() => {}的类型差异是什么

TypeScript 函数返回类型{}与void的差异说明

核心差异

  • type type2 = () => void 定义的是返回值无使用意义的函数类型:该类型不限制函数是否返回值,就算函数主动返回其他类型的值,类型系统也会直接忽略返回值的类型校验,是专门用来标记不需要关注返回结果的函数场景。
  • type type1 = () => {} 定义的是必须返回空对象类型值的函数类型:该类型严格要求函数返回的值必须符合空对象{}的类型约束,不允许返回undefined、null或其他任意不符合的类型。

报错原因

你声明的赋值函数() => { }没有编写return语句,TypeScript会默认推断该函数的返回值类型为void,而void类型无法满足type1要求的返回{}类型的约束,因此会抛出Type 'void' is not assignable to type '{}'的错误。

修正方案

如果需要符合type1的类型要求,只需要主动在函数内返回空对象即可:

// 写法1:完整return写法
const firstType: type1 = () => {
  return {}
}

// 写法2:箭头函数简写(需要加括号避免被识别为函数体包裹符号)
const firstType: type1 = () => ({})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:07