类与接口
这页讲的是如何在 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”