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

TypeScript中如何获取当前所在匿名函数的返回类型?

在TypeScript中便捷获取当前函数返回类型的方法

目前TypeScript没有原生语法直接引用当前所在函数的返回类型,但可以通过以下技巧实现你的需求——既显式指定函数返回类型,又避免重复类型定义或单独声明type:

1. 顶级函数表达式

先为变量显式指定完整的函数类型,再在函数体内通过ReturnType<typeof 变量名>获取返回类型:

// 显式指定fn的函数类型
const fn: () => { id: number; name: string; age: number }[] = () => {
  // 直接复用返回类型,无需重复复杂定义
  const result: ReturnType<typeof fn> = [];
  result.push({ id: 1, name: "Alice", age: 28 });
  return result;
};

2. 对象内部的函数

通过ReturnType<typeof 容器对象.函数名>在函数体内引用返回类型:

const dataUtils = {
  // 显式指定函数返回类型
  getFilteredItems: function(): { value: string; timestamp: number }[] {
    const result: ReturnType<typeof dataUtils.getFilteredItems> = [];
    // 业务逻辑处理
    result.push({ value: "test", timestamp: Date.now() });
    return result;
  }
};

3. 类成员函数

利用this引用当前类实例,结合ReturnType<typeof this.函数名>获取返回类型:

class DataService {
  // 显式指定返回类型
  fetchRecords(): { id: string; content: string }[] {
    const result: ReturnType<typeof this.fetchRecords> = [];
    // 模拟数据获取逻辑
    result.push({ id: "rec-001", content: "sample content" });
    return result;
  }
}

这些方法既满足了显式指定函数类型的要求,又无需重复编写复杂类型或额外声明type,同时适配匿名函数、对象/类内部函数等场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:42:14