Skip to content

类与接口

这页讲的是如何在 Targo 中组织结构和行为,而不是把所有 class 语法逐项列出来。

核心心智模型

  • class 更接近 Go struct 的组织方式
  • interface 更接近 Go interface 的契约方式
  • 组合优先于继承
  • constructor 是可用语法,但不是把 Targo 变回 JavaScript class runtime

设计建议

class 表达结构和方法

适合放:

  • 领域对象
  • 配置对象
  • 带方法的状态载体

不适合继续沿用的 JS 习惯:

  • 深层继承树
  • 把 class 当成浏览器/Node 运行时对象模型
  • 依赖 private / protected 关键字

interface 表达能力边界

适合放:

  • 可替换行为
  • 抽象服务接口
  • 测试替身边界

用组合代替继承

如果你下意识想写 extends,通常应该退一步想:

  • 这是在复用字段?
  • 这是在复用行为?
  • 这是在抽象一组能力?

在 Targo 中,这三类通常分别更适合:

  • 组合
  • embedding
  • interface

私有字段和构造方式

  • 私有字段使用 #field
  • constructor 可以用,但要保持 Go-first 的建模习惯
  • 如果需要多种初始化方式,通常用明确命名的工厂函数或辅助函数会更清晰

常见误区

  • 以为 class 支持完整的 TS/JS 继承语义
  • 继续使用 private / protected
  • 把“支持 constructor”误解成“推荐所有面向对象模式都照搬 TS”

对应 Reference