posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 game golang 客户端开发 Minigame Saas rust Python Java cg Typescript
typescript

《TypeScript高级编程》1.3 类型推导算法与上下文类型

本节讲清编译器在没有标注时如何猜出类型。内容涵盖自下而上推断与自上而下上下文类型这两条相反的流水线、字面量拓宽与 as const 的收窄作用、数组最佳公共类型的合并规则、泛型推断候选的收集与合并顺序、回调参数获得类型的条件,以及隐式 any 与循环推导这两类失败的诊断路径。读完你能判断某处该补显式标注还是该改结构,并解释常见推导结果为何与直觉不同。

8 分钟阅读
TypeScript TypeScript高级编程
typescript

《TypeScript高级编程》1.2 类型擦除与运行时边界

本节把 tsc 的编译产物摊开看,讲清类型擦除删掉了什么、留下了什么。内容涵盖擦除的基本规则与产物对照、泛型与 instanceof 为何在运行时不可用、as 断言为何不是校验,以及 enum、namespace、类体、装饰器元数据这些必须生成真实代码的例外。读完你能列出运行时可用的替代手段,用类型谓词与判别联合把校验集中在系统边界,并判断 private、readonly 的真实效力。

8 分钟阅读
TypeScript TypeScript高级编程 类型擦除
typescript

《TypeScript高级编程》1.1 结构化类型与兼容性判定

本节把「类型 A 能否赋给类型 B」从直觉变成可复述的规则:先对照名义类型理解结构化类型为何只看成员结构,再拆解可赋值性的判定顺序,涵盖成员存在性、递归兼容、参数逆变与返回值协变,并解释数组协变的历史包袱、any 与 unknown 的特殊行为、private 成员如何让比较退化为名义类型,以及结构化兼容放过 bug 时的品牌类型兜底做法。读完你能独立解读 not assignable 报错。

9 分钟阅读
TypeScript TypeScript高级编程
typescript

《TypeScript编程实战》9.3 定时任务与并发限流

定时任务看似最简单,却最容易在多实例部署下出错。本节先对比系统 crontab、node-cron 与 BullMQ Job Scheduler 三条路径,解释前两者为何在容器多副本下会重复执行;再用 Job Scheduler 与确定性 jobId 解决重复投递;最后讲透并发控制的两层含义——单实例的 concurrency 与跨实例的全局闸,以及 limiter 如何把配额变成硬限制。

8 分钟阅读
TypeScript TypeScript编程实战 定时任务
typescript

《TypeScript编程实战》9.2 重试、幂等与死信

投递成功只是开始,任务失败之后才是真正的工程量。本节先区分可重试与不可重试的失败,讲清 BullMQ 的 attempts、backoff 与 UnrecoverableError 三件套;再解释为什么队列只能做到至少一次投递,从而引出幂等键的设计与两种落地方式;最后给出死信队列的搬移、告警与重放闭环。读完本节,你能让一个后台任务系统在失败面前保持可控,而不是无限重试或静默丢单。

7 分钟阅读
TypeScript TypeScript编程实战 幂等
typescript

《TypeScript编程实战》9.1 BullMQ 队列模型与 payload 泛型

本节从「为什么要把工作丢进队列」讲起,拆解 BullMQ 的 Queue、Worker、Job 三个核心对象及其在 Redis 中的存储结构,再重点解决一个工程痛点:如何用泛型把 payload 类型从生产者贯穿到消费者。你会学到 Queue 的类型参数推导、job name 的字面量联合、判别联合注册表的写法,以及 Date 序列化等常见坑。读完能把队列调用从 any 变成端到端可检查。

7 分钟阅读
TypeScript TypeScript编程实战 BullMQ