You need to enable JavaScript to run this app. TypeScript .d.ts中如何提示Map回调函数入参btn类型为MessageComponent?
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript .d.ts中如何提示Map回调函数入参btn类型为MessageComponent?

实现方案

你只需要把声明里泛用的Function类型替换为显式的函数类型签名即可,TypeScript会自动给使用者做对应的参数类型提示:

// 请确保你当前的声明文件中已经正确引入或声明了依赖类型:MessageMenuOption、MessageEmbed、MessageComponent
declare class Page {
    constructor(name: string, content: MessageEmbed, buttons: Map<MessageMenuOption, string | ((btn: MessageComponent) => void)>, index: number)
    name: string
    content: MessageEmbed
    buttons: Map<MessageMenuOption, string | ((btn: MessageComponent) => void)>
}

效果说明

  • 使用者给Map传入函数类型的取值时,编辑器会自动提示函数的第一个入参btn的类型为MessageComponent,如果使用者写错入参类型、或者调用btn不存在的属性/方法,都会触发类型校验报错。
  • 如果你的业务场景中允许函数返回异步结果,可以自行调整函数签名的返回值,例如改成(btn: MessageComponent) => Promise<void> | void适配异步场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:45:03