在线书架 / BOOKS

电子书籍

从第一章开始,把知识读成体系。

按领域与学习阶段整理的在线电子书与创作手记。覆盖 Rust、Lua、TypeScript、Python、Java(Spring Boot)与游戏开发、文学创作,从阅读指南进入,或按全书目录查找章节。

了解阅读方式
已收录书稿
19部
可读章节
915篇
阅读领域
7类

4 部书稿

Rust

从所有权与借用,到工程实战与系统编程。

3 部书稿

Lua

从脚本基础,到语言机制与游戏业务。

2 部书稿

游戏开发

从客户端引擎,到服务端架构与完整项目。

3 部书稿

TypeScript

按入门、实战、高级三步,建立类型与工程能力。

3 部书稿

Python

从语言基础与工程交付,深入 CPython 与性能优化。

3 部书稿

Java

从 Spring Boot 入门与工程实战,到框架内部机制与版本迁移。

1 部书稿

创作与写作

一部长篇科幻小说的创作过程与长期写作经验。

如何阅读

这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。

《Spring Boot 入门 / 实战 / 高级》三部曲已全部上线(入门 61 篇 / 实战 55 篇 / 高级 34 篇,共 150 篇)。《Python计算机图形学入门》的目录篇仍为草稿。

按更新时间浏览所有章节 · 第 20 / 46 页
typescript

《TypeScript编程入门》12.2 为无类型库编写声明

本节讲的是 .d.ts 的实战编写:当一个库既没有自带类型、社区也没有 @types 包时,如何从 JavaScript 源码、README 与运行时行为反推出准确的签名。内容覆盖三种粒度的声明策略、函数重载与可选参数、类与命名空间的合并写法、CommonJS 的 export = 与 import =、资源文件的通配声明,以及用类型测试保证声明不撒谎。读完你能为任意内部老库补上可用的类型。

8 分钟阅读
TypeScript TypeScript编程入门 类型声明
typescript

《TypeScript编程入门》12.1 .d.ts 与 @types 机制

本节从类型擦除讲起,解释为什么编译产物 .js 里不剩任何类型信息、消费方却依然能获得完整补全,从而引出 .d.ts 声明文件。我们会拆开 declare 的每一种用法,讲清「脚本」与「模块」在声明文件里的分水岭,梳理 @types 的查找顺序、typeRoots 与 types 的差别以及三斜线指令,并亲手写一个最小可用的声明文件。读完你能独立排查「找不到模块的类型声明」这类报错。

7 分钟阅读
TypeScript TypeScript编程入门 声明文件
typescript

《TypeScript编程入门》11.3 npm 包、类型声明与 exports

本节从使用者视角切换到包作者视角,讲清一个 npm 包如何被 TypeScript 正确识别。先看 package.json 里 main、module、types 这些历史字段的来历与局限,再重点拆解 exports 条件导出与其中的 types 条件、顺序要求,最后给出类型声明的三种来源、发布自己包的完整配置,以及消费者最常撞上的几类报错。

8 分钟阅读
TypeScript TypeScript编程入门 npm 包
typescript

《TypeScript编程入门》11.2 ESM/CJS 互操作与 moduleResolution

现实项目里 ES 模块与 CommonJS 长期并存,本节讲清两者如何互相调用。先看 package.json 的 type 字段与 .mjs/.cjs 扩展名如何决定文件的模块类型,再拆解 esModuleInterop、verbatimModuleSyntax 等开关到底改变了什么,以及 import type、__dirname 缺失、双包危害等实战坑与对应报错。

9 分钟阅读
TypeScript TypeScript编程入门 ESM/CJS 互操作
typescript

《TypeScript编程入门》11.1 ES 模块与模块解析

本节从模块化的历史讲起,说明为什么全局脚本会互相污染、ES 模块如何用显式的 export 与 import 把依赖写进代码。随后逐一拆解命名导出、默认导出、重命名与副作用导入的取舍,讲清相对说明符与裸说明符的区别,并用表格对照五种 moduleResolution 的查找规则与适用场景,最后给出扩展名、目录索引、循环依赖三类高频坑与对应报错。

9 分钟阅读
TypeScript TypeScript编程入门 ES 模块
typescript

《TypeScript编程入门》10.3 递归类型与类型性能治理

本节讲类型层面的最后一块硬骨头:递归类型如何用「自我引用加终止条件」描述 JSON、树与深层修饰;编译器为什么会抛出 2589 与 2456 两类错误;TypeScript 4.5 的尾递归消除与累加器写法如何把深度上限提到上千。后半程转入类型性能治理,用 tsc 的 extendedDiagnostics 与 generateTrace 定位实例化热点,并给出可落地的优化清单。

7 分钟阅读
TypeScript TypeScript编程入门 递归类型