category

Typescript

共 182 篇文章。
全部文章gamegolang客户端开发MinigameSaasrustPythonJavacgTypescriptengineCocosMmodatabase
typescript

《TypeScript高级编程》11.3 类型驱动架构与团队规范

本节把类型从「事后补的注解」提升为架构约束:用品牌类型表达不可互换的标识、用可辨识联合表达状态机、用 schema 作为契约的单一事实来源,把「谁能调用谁」写进编译期。再给出团队落地方法,包括 tsconfig 基线继承、项目引用、CI 类型门禁与类型债务台账。读完你能设计出新人自动写出合规代码的仓库结构。

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

《TypeScript高级编程》11.2 渐进式迁移与严格化路径

本节给出从 JavaScript 或宽松 TypeScript 迁移到严格模式的路径:先用 allowJs 与 checkJs 按目录纳管边界,再按 noImplicitAny、strictNullChecks、strictFunctionTypes 的依赖顺序分批开启,配合 ts-expect-error 台账与错误计数棘轮把债务变成可度量指标。读完你能把十万行项目拆成不停机、可回滚的批次。

9 分钟阅读
TypeScript TypeScript高级编程 渐进式迁移
typescript

《TypeScript高级编程》11.1 TS 版本演进与 breaking changes

本节梳理 TypeScript 从 1.x 到 5.x 的演进主线,把 breaking change 归为检查收紧、默认值变更、lib.d.ts 更新与废弃项移除四类,并逐类给出可复现的报错示例与回退边界。你会掌握一套「基线快照 + 目标版本双跑 + 增量 diff」的升级流程,能在升级前量化影响面、判断某个报错是版本所致还是代码本身的问题。读完你能为团队定下可回滚的升级节奏。

10 分钟阅读
TypeScript TypeScript高级编程 Breaking Change
typescript

《TypeScript高级编程》10.3 边界数据与不可信输入

本节把不可信输入单独拎出来讲。先定义信任边界划在哪里,再讲透「解析而非校验」这条原则与品牌类型如何把 unknown 变成领域类型,然后逐一过 HTTP 请求、环境变量、第三方 API、数据库四条真实边界,最后深入原型污染与深合并的攻击面、禁止 as 跨边界的 lint 配置。读完你能为自己的服务画出信任边界图,并在每条边界上写出可测试、可穷尽的解析代码。

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

《TypeScript高级编程》10.2 序列化与反序列化类型

本节讲数据写出再读回这条边界上类型如何失真。先说清 JSON.stringify 与 JSON.parse 在类型上的不对称,再列出 Date、BigInt、undefined、NaN、Map、循环引用的失真清单与报错,然后用编解码器 Codec 把线上格式与内存类型显式分开,讲透版本迁移、replacer/reviver 的用法与二进制格式取舍。读完你能为持久化与消息协议设计出类型安全的边界。

9 分钟阅读
TypeScript TypeScript高级编程 序列化
typescript

《TypeScript高级编程》10.1 类型守卫与验证库原理

本节讲运行时校验的第一道防线:类型守卫与验证库。先说清 is 守卫的声明本质与它并不能真正校验的事实,再拆解手写守卫在嵌套对象、数组、穷尽性检查上的漏判与误判,然后从零实现一个以 schema 为唯一事实来源的验证器,讲透 parse 与 safeParse 的分工和 InferOutput 类型推导的原理。读完你能为项目选对守卫写法,并看懂主流验证库的类型推导机制。

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

《TypeScript编程实战》18.3 发布后验证与回滚

本节把「部署完成」之后的那段时间当成发布本身的一部分:先给出冒烟、合成监控、真实用户指标、业务指标四层验证的具体做法,讲清指标为什么必须带版本标签才能对比新旧;再把回滚拆成镜像、流量、开关、配置、数据五类对象,给出各自的耗时与代价,并说明数据库不可回滚时该向前修复还是恢复备份;最后落到自动回退门禁与无责复盘。读完后你能给发布配上一套可验证、可止损的收尾流程。

10 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》18.2 数据库迁移与灰度发布

本节讲清「代码能随时回滚、数据库不能」这个不对称性带来的全部约束:先用 expand-contract 把破坏性结构变更拆成向前兼容的多步,再给出大表回填的分批限速写法与迁移在流水线中的正确位置,最后系统对比蓝绿、金丝雀、滚动与功能开关四种灰度形态,并给出灰度期的指标判定与契约兼容要求。读完后你能设计一条可灰度、可回滚的发布路径。

10 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》18.1 Docker 与 CI/CD 流水线

本节把 TypeScript 服务从「本地能跑」推进到「可重复交付」:先用多阶段 Dockerfile 拆开依赖层、构建层与运行层,讲清镜像为何能从 1.2GB 降到 180MB;再给出分层清晰的 CI/CD 流水线,覆盖类型检查、测试、镜像构建、签名与制品晋级;最后落到缓存、非 root 运行、健康检查与供应链加固这些易踩的坑。读完后你能独立写出从提交到上线的自动化流水线。

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

《TypeScript高级编程》9.3 循环依赖与类型-only 导入

本节解决工程中最隐蔽的一类问题:循环依赖与类型导入。先对比 ESM 与 CJS 下循环依赖的不同表现,解释暂时性死区与部分导出为何会让值在初始化阶段变成 undefined,再说明 import type 为什么能从产物中彻底消失、从而在结构上切断循环,随后对照三种类型导入写法的差异,最后给出检测工具与抽取共享类型的重构套路。

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

《TypeScript高级编程》9.2 条件导出与 bundler 语义

本节深入 package.json 的 exports 字段:先讲它如何取代 main 与 module 实现真正的封装,再拆解子路径映射、条件对象与数组回退三种形态,重点讲清条件键的顺序语义为何决定成败,然后对照 bundler 与 Node 在条件集合上的差异,最后给出一个可直接复制的双包库配置。读完你能自己写出既被 Node 认识、又让 TypeScript 找到类型的导出表。

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

《TypeScript高级编程》9.1 moduleResolution 各模式对照

本节把 TypeScript 的模块解析讲成一张对照表:先说明编译器为何要自己实现解析规则,再拆解 classic、node10、node16、nodenext、bundler 五种模式在扩展名与条件导出上的差异,再给出 module 与 moduleResolution 的合法组合,最后用三种典型工程配置收束。读完你能为任意项目选对模式,并看懂 Cannot find module 报错。

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

《TypeScript编程实战》17.3 依赖供应链与应用安全加固

本节把视角从运行时可见性转向交付安全:先建立依赖供应链的威胁模型,再讲清 lockfile 与可复现安装的纪律、npm audit 与 OSV 扫描的差异、自动化升级与版本锁定策略。随后落到应用侧加固,涵盖用 Zod 在边界做运行时校验、安全响应头与 CSP、密钥管理与最小权限,最后给出 SBOM 与构建证明的落地方式。

9 分钟阅读
TypeScript TypeScript编程实战 供应链安全
typescript

《TypeScript编程实战》17.2 指标与告警

本节讲透指标与告警这条链路:从 Counter、Gauge、Histogram 三种仪器类型的语义差异,到用 OpenTelemetry SDK 在 Node.js 里暴露 /metrics 端点,再到命名规范与标签基数控制。你将学会用 RED 与黄金信号设计仪表盘,写出可执行、低噪音的告警规则,并用 SLO 与燃烧率把告警从「阈值告警」升级为「错误预算告警」。

9 分钟阅读
TypeScript TypeScript编程实战 Prometheus
typescript

《TypeScript编程实战》17.1 OpenTelemetry 追踪

本节从日志排障的局限出发,讲清 OpenTelemetry 的 Trace、Span 与 Context 数据模型,并给出 Node.js 侧可直接运行的 SDK 初始化、自动插桩与采样配置。你将学会在 Fastify 中间件里手工埋点、跨服务传播 traceparent、把 trace_id 写进结构化日志,并用语义约定统一 span 属性命名,避开采样过高与上下文丢失等常见坑。

9 分钟阅读
TypeScript TypeScript编程实战 OpenTelemetry
typescript

《TypeScript高级编程》8.3 性能剖析与火焰图

凭直觉优化性能几乎总是错的。本节把「先测量、再优化」落成可执行的流程:用 --cpu-prof 与 --prof 采集 CPU 剖析、用自顶向下与自底向上两种视角读火焰图、用堆快照定位内存泄漏,并解释采样开销、JIT 预热、异步栈与 source map 四个让剖析失真的陷阱。读完你能独立定位热点函数并验证优化是否真的有效。

9 分钟阅读
TypeScript TypeScript高级编程 火焰图
typescript

《TypeScript高级编程》8.2 类型擦除后的运行时形态

类型擦除不是一句「类型都没了」就能带过:本节逐条对照 .ts 与编译产物,看清哪些语法被彻底删除、哪些留下了运行时代码。重点讲 enum、namespace、参数属性、装饰器与类字段的真实编译结果,以及为什么 private 与 #private 在运行时完全不同。读完你能预判任意一段 TS 会编译成什么,并知道何时必须补运行时校验。

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

《TypeScript高级编程》8.1 V8 类型反馈与 JIT

本节把 TypeScript 的类型声明放到一边,转而看真正执行代码的那台机器:V8 如何用 Ignition 采集类型反馈、用隐藏类与内联缓存加速属性访问,再由 TurboFan 做推测式优化并在假设破裂时去优化。读完你能读懂 --trace-deopt 日志,知道哪些写法会让函数永远留在解释器里,并写出对 JIT 友好的代码。

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

《TypeScript编程实战》16.3 契约版本演进与兼容

本节讨论契约改动之后的事:先给出破坏性变更的判定清单,把「加字段安全、改语义危险」这类直觉变成可检查的规则;再对比 URL、Header、内容协商三种版本化策略的代价;然后用 expand-contract 三步法演示字段改名如何做到不打断旧客户端;最后讲弃用头、下线指标与消费者驱动契约测试的落地方式。

10 分钟阅读
TypeScript TypeScript编程实战