常见模式对比
这页不是完整支持矩阵,而是帮助 TypeScript 开发者建立“迁移时应该怎么改写”的直觉。
1. 异步请求
TypeScript 里你会怎么写
async functionawait fetch(...)Promise.all(...)
在 Targo 里应该先怎么想
- 这段逻辑是否真的需要并发?
- 如果需要并发,数据和错误分别通过什么 channel 流动?
- 如果不需要并发,是否应该直接改成同步 Go 风格 API?
先看:
2. 数组处理
TypeScript 里你会怎么写
mapfilterreduce
在 Targo 里应该先怎么想
- 我需要的是 Go-native 集合还是 JS 风格方法?
- 这里用
slice<T>更自然,还是Array<T>更自然?
先看:
3. 类和继承
TypeScript 里你会怎么写
classextendsprivate/protected
在 Targo 里应该先怎么想
- 这里是在建模结构,还是在复用行为?
- 这里应该用组合、embedding,还是 interface?
先看:
4. 错误处理
TypeScript 里你会怎么写
try/catch- 异步异常传播
在 Targo 里应该先怎么想
- 返回值里应该是什么结果?
- 错误是直接返回还是包装后返回?
先看:
5. 包和运行时
TypeScript 里你会怎么想
- Node / browser API 是否可用
- JS runtime global 是否存在
在 Targo 里应该先怎么想
- 这是不是 Go 包更该负责的事情?
- 这是不是一个当前根本不该假设存在的 JS runtime API?
先看: