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

TypeScript中返回this的对象方法应该设置什么返回类型?

解决方案

有两种无需预先定义接口的实现方式:

方式1:直接使用this作为返回类型

这是最简便的方案,TypeScript 会自动将this匹配为当前对象的类型,后续给对象新增方法也不需要修改类型标注,天然支持链式调用场景:

const console = {
  write(text: string): this {
    /* logic */
    return this;
  },
  writeLine(text: string): this {
    /* logic */
    return this;
  }
};

方式2:通过typeof直接引用对象类型

如果需要显式固定返回类型为当前对象的类型,可以直接用typeof 变量名获取对象类型进行标注:

const console = {
  write(text: string): typeof console {
    /* logic */
    return this;
  },
  writeLine(text: string): typeof console {
    /* logic */
    return this;
  }
};

两种方式的差异

  • this类型支持上下文自动适配:如果后续基于该对象做派生、扩展,方法返回类型会自动匹配新的实例类型,适合可扩展的场景
  • typeof 变量名类型固定:不会受this指向变化、对象派生的影响,返回类型严格和初始对象的类型保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:06:00