TypeScript基础入门
TypeScript是JavaScript的超集,添加了静态类型系统,使得大型应用开发更加可靠。
1. 基本类型
TypeScript提供了多种基本类型:
typescript// 基本类型 let name: string = "TypeScript"; let version: number = 5.3; let isAwesome: boolean = true; // 数组 let numbers: number[] = [1, 2, 3]; let strings: Array<string> = ["a", "b", "c"]; // 元组 let tuple: [string, number] = ["hello", 42]; // 枚举 enum Color { Red, Green, Blue } let color: Color = Color.Red;
2. 接口和类型别名
接口
typescriptinterface User { id: number; name: string; email?: string; // 可选属性 readonly createdAt: Date; // 只读属性 } const user: User = { id: 1, name: "Alice", createdAt: new Date() };
类型别名
typescripttype Point = { x: number; y: number; }; type ID = number | string;
3. 泛型
泛型提供了类型安全的代码重用:
typescript// 泛型函数 function identity<T>(arg: T): T { return arg; } // 泛型接口 interface Container<T> { value: T; } // 泛型类 class Stack<T> { private items: T[] = []; push(item: T): void { this.items.push(item); } pop(): T | undefined { return this.items.pop(); } }
4. 类型系统对比
| 特性 | JavaScript | TypeScript |
|---|---|---|
| 类型检查 | 动态类型(运行时) | 静态类型(编译时) |
| 类型注解 | 不支持 | 支持 |
| 接口 | 不支持 | 支持 |
| 泛型 | 不支持 | 支持 |
| 编译 | 不需要 | 需要 |
| 错误检测 | 运行时 | 编译时 |
5. 高级类型
联合类型
typescripttype Status = "success" | "error" | "loading"; function handleStatus(status: Status): void { console.log(`Status: ${status}`); }
交叉类型
typescriptinterface Named { name: string; } interface Aged { age: number; } type Person = Named & Aged; const person: Person = { name: "Bob", age: 30 };
最佳实践
- 启用严格模式:在
tsconfig.json中设置strict: true - 使用明确的类型:避免使用
any类型 - 利用类型推断:让TypeScript自动推断类型
- 编写类型定义文件:为第三方库提供类型支持
- 定期更新TypeScript:使用最新版本以获得新特性
TypeScript的类型系统大大提高了代码的可靠性和可维护性,是现代JavaScript开发的必备工具。