简介
欢迎阅读《Auto 编程语言 -- TypeScript 版》。本书面向已掌握 TypeScript 或 JavaScript 的开发者,教授 Auto 语言。Auto 提供与 TypeScript 同等的类型安全,但语法大幅精简,并通过 a2ts 转译器编译为 TypeScript,可直接集成到任何现有 TypeScript 项目中。
本书内容
本书按照 TypeScript 手册的结构逐章展开。每个主题都提供 Auto 与 TypeScript 的对照代码,让你清楚地看到 Auto 如何映射到你已熟悉的语言。
各章节从基础到进阶依次递进:
- 基础 -- 变量、原始类型和控制流。
- 日常类型 -- 联合类型、交叉类型和常见类型模式。
- 类型收窄 -- Auto 如何通过
is关键字处理类型收窄。 - 函数 -- 参数类型、返回类型和重载。
- 对象类型 --
type关键字、方法和属性。 - 从类型创建类型 -- 映射类型、条件类型和泛型。
- 类型运算符 --
keyof、typeof及其他工具类型。 - 类 -- Auto 如何用
type替代 TypeScript 的class。 - 模块 -- 导入、导出和项目组织。
- 理解错误 -- 阅读和修复编译器报错信息。
面向 TypeScript 开发者的 Auto
如果你了解 TypeScript,Auto 的大部分概念会让你感到熟悉。以下是贯穿全书你会遇到的主要差异:
type替代class-- Auto 使用type定义所有用户自定义类型。spec替代interface-- Auto 的spec定义结构性契约。is替代switch/ 模式匹配 -- Auto 用is关键字统一条件逻辑。let/var替代let/let mut-- Auto 的let默认不可变,var可变。print()替代console.log()-- 更短的表达,同样的效果。
如何使用本书
建议从前到后按顺序阅读。后面的章节建立在前面章节的概念之上。如果你对某个主题已经熟悉,可以跳着读,遇到不明白的地方随时回来查阅。
关于代码示例的说明
本书每个代码示例都同时展示 Auto 版本和等效的 TypeScript 版本。Auto 代码可以通过 a2ts 工具转译为 TypeScript,你可以自行验证输出结果。
学习 Auto 的一个重要环节是学会阅读编译器的错误信息。我们会展示一些故意无法编译的示例,以及编译器给出的错误信息。如果你单独运行某个片段时失败了,请查阅上下文文字以了解背景。
源代码
本书的源文件可在项目仓库中找到。