posts

文章归档

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

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

全部文章

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

《TypeScript高级编程》2.3 类型级数据结构与图灵完备

本节把条件类型与 infer 拼成类型级的数据结构与算法:以元组模拟数组与单链表、用元组长度实现类型级加减乘除与比较、用对象类型充当字典并按键值反查键名,再借逆变合并把联合转成元组。由此说明 TypeScript 类型系统为何是图灵完备的,以及这种能力在编译时间、错误信息与可维护性上的真实代价。读完本节,你能判断一个类型工具该手写还是该改用代码生成。

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

《TypeScript高级编程》2.2 infer 与递归

本节讲解 infer 在条件类型中做模式匹配与类型提取的规则:推断位置受协变与逆变影响的结果、同一推断变量出现在多处时的合并规则,以及在模板字面量类型中捕获子串、解析路由参数的技巧。随后引入递归条件类型,讲清递减输入与显式终止分支这两条铁律,并用累积参数避免结果反转。读完本节,你能用 infer 与递归实现真实的类型级提取工具,并知道如何规避深度超限报错。

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

《TypeScript高级编程》2.1 条件类型与分发

本节从条件类型的语法与可赋值性判定讲起,重点剖析「分发」这一最反直觉的行为:为什么裸类型参数会让联合类型被逐成员展开、如何用元组包裹关闭分发、never 在分发中的特殊性,以及它与映射类型、键重映射组合后如何实现按键值类型筛选字段。读完本节,你能读懂主流工具库的类型定义,并写出行为可预测、不会误分发的条件类型工具。

9 分钟阅读
TypeScript TypeScript高级编程 条件类型
typescript

《TypeScript编程实战》10.3 心跳、重连与广播

长连接上线前还有三块拼图没补齐:它会静默假死、断了要能自动恢复、单实例的订阅表在多副本部署下会失效。本节先讲清心跳为什么必须由应用层承担、ping/pong 与业务保活如何配合、指数退避加抖动如何避免重连风暴,再讲断线后的状态补偿与消息幂等,最后用 Redis 发布订阅把广播从单机扩展到集群,并给出背压、慢消费者与可观测性的落地方案。

9 分钟阅读
TypeScript TypeScript编程实战 断线重连
typescript

《TypeScript编程实战》10.2 SSE 与流式响应

当服务端只需单向推送时,WebSocket 是过重的选择。本节讲透 SSE 的文本帧格式、id 与 retry 字段的作用、服务端如何用 ReadableStream 输出事件流、客户端 EventSource 的自动重连为何常常失效,以及需要 POST 与自定义请求头时如何改用 fetch 读取。还给出事件契约的类型化写法与流式 JSON 增量解析,并指出代理缓冲与超时这几个必踩的坑。

8 分钟阅读
TypeScript TypeScript编程实战 SSE
typescript

《TypeScript编程实战》10.1 WebSocket 消息协议判别联合

WebSocket 是长连接,一条通道上会流动几十种语义完全不同的消息,而 JSON.parse 返回的 any 会让类型安全在最需要它的地方失效。本节用判别联合为消息族建模:挑选有限且显式的字面量判别键、让 switch 自动收窄、用 never 做穷尽检查、在 JSON 边界用 Zod 做运行时校验,并给出前后端共享协议包与版本协商的落地方式。

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