ts学习

ts学习
野菜TypeScript 详细学习手册
第一部分:TypeScript 基础
1. TypeScript 简介
什么是 TypeScript?
- JavaScript 的超集,添加了静态类型系统
- 编译时类型检查,运行时仍然是纯 JavaScript
- 由 Microsoft 开发和维护
优势:
- 更好的代码可读性和维护性
- 早期错误检测
- 更好的 IDE 支持(智能提示、重构)
- 渐进式采用
2. 开发环境搭建
安装 TypeScript
1 | # 全局安装 |
创建第一个 TypeScript 文件
1 | // hello.ts |
编译和运行
1 | # 编译 |
tsconfig.json 配置
1 | { |
3. 基础类型
原始类型
1 | // 字符串 |
数组和元组
1 | // 数组 |
任意类型和未知类型
1 | // any - 关闭类型检查 |
4. 函数
函数声明和表达式
1 | // 函数声明 |
可选参数和默认参数
1 | function createUser( |
剩余参数
1 | function sum(...numbers: number[]): number { |
函数重载
1 | // 重载签名 |
第二部分:面向对象编程
5. 接口(Interface)
基础接口
1 | interface User { |
函数类型接口
1 | interface SearchFunc { |
类类型接口
1 | interface ClockInterface { |
接口继承
1 | interface Shape { |
6. 类(Class)
基础类
1 | class Animal { |
继承
1 | class Dog extends Animal { |
抽象类
1 | abstract class Department { |
存取器(getter/setter)
1 | class Employee { |
静态属性
1 | class Grid { |
7. 泛型(Generics)
泛型函数
1 | function identity<T>(arg: T): T { |
泛型接口
1 | interface GenericIdentityFn<T> { |
泛型类
1 | class GenericNumber<T> { |
泛型约束
1 | interface Lengthwise { |
第三部分:高级类型
8. 高级类型特性
联合类型和类型守卫
1 | // 联合类型 |
类型别名
1 | type StringOrNumber = string | number; |
字面量类型
1 | type Direction = "north" | "east" | "south" | "west"; |
交叉类型
1 | interface BusinessPartner { |
9. 映射类型和条件类型
映射类型
1 | type Readonly<T> = { |
条件类型
1 | type TypeName<T> = |
实用工具类型
1 | interface User { |
第四部分:模块和命名空间
10. 模块系统
导出和导入
1 | // math.ts - 导出 |
重新导出
1 | // shapes.ts |
11. 命名空间
1 | namespace Validation { |
第五部分:实战应用
12. 配置和最佳实践
完整的 tsconfig.json
1 | { |
实用工具函数示例
1 | // 异步错误处理 |
13. 学习路径建议
- 第一周:基础类型、函数、接口
- 第二周:类、继承、修饰符
- 第三周:泛型、高级类型
- 第四周:模块、命名空间、配置
- 第五周:实战项目,结合 React/Angular/Vue
- 第六周:深入学习类型系统,工具类型
14. 常见错误和解决方案
1 | // 错误:对象可能为 undefined |



