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

TypeScript泛型Promise:Context API默认值的正确签名求解

正确的DEFAULT_VALUE签名写法

假设你的Context接口定义包含一个带泛型、返回Promise<void>的方法,类似:

interface AppContext {
  submit: <T>(payload: T) => Promise<void>;
}

你需要让DEFAULT_VALUE的方法签名完全匹配接口的泛型定义,以下两种写法都可以解决报错:

写法1:使用async函数

async函数天然返回Promise,空函数体的async函数会隐式返回Promise<void>,加上泛型<T>即可对齐接口:

const DEFAULT_VALUE: AppContext = {
  submit: async <T>(payload: T) => {}
};

写法2:返回已resolve的Promise

如果不需要异步逻辑,直接返回Promise.resolve(),同时保留泛型声明:

const DEFAULT_VALUE: AppContext = {
  submit: <T>(payload: T) => Promise.resolve()
};

核心要点

  • 必须保留泛型<T>,否则TypeScript会因为方法签名不匹配(缺少泛型)抛出错误。
  • Promise<void>不需要额外指定泛型参数,只要Promise没有resolve具体值,就符合该类型要求。

内容的提问来源于stack exchange,提问作者Marcos Favarão

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:06:32