TypeScript 变量
最后修改时间:2025年3月3日
TypeScript 中的变量使用严格的类型注解来存储数据。它们通过添加类型安全和更好的工具支持来增强 JavaScript 变量。本教程通过实际示例探索变量声明、类型注解和最佳实践。
基本变量声明
TypeScript 变量可以使用 let、const 或 var 声明。此示例展示了带有类型的基本变量声明。
basic_variables.ts
let age: number = 30; const name: string = "Alice"; var isActive: boolean = true; console.log(age, name, isActive); // Output: 30 Alice true
TypeScript 强制执行类型注解,确保变量在其生命周期中持有正确的数据类型。
类型推断
当变量在没有显式注解的情况下初始化时,TypeScript 会推断类型。这可以减少冗余,同时保持类型安全。
type_inference.ts
let score = 95; // TypeScript infers `number` const message = "Hi"; // TypeScript infers `string` console.log(score, message); // Output: 95 Hi
类型推断适用于原始类型、数组和对象。建议对复杂类型使用显式注解。
联合类型
变量可以使用联合类型存储多种类型。这对于灵活的数据处理很有用。
union_types.ts
let id: string | number; id = "ABC123"; console.log(id); // Output: ABC123 id = 123; console.log(id); // Output: 123
联合类型允许变量在指定的类型之间切换,从而在保持类型安全的同时提供灵活性。
字面量类型
字面量类型将变量限制为特定值。这对于枚举或固定值集很有用。
literal_types.ts
let status: "active" | "inactive"; status = "active"; console.log(status); // Output: active // status = "pending"; // Error: Type '"pending"' is not assignable
字面量类型确保变量只持有预定义的值,从而减少运行时错误。
数组和元组
数组和元组存储值的集合。TypeScript 会强制执行数组的元素类型和元组的固定结构。
arrays_tuples.ts
let numbers: number[] = [1, 2, 3]; let person: [string, number] = ["Alice", 30]; console.log(numbers); // Output: [1, 2, 3] console.log(person); // Output: ["Alice", 30]
数组允许动态集合,而元组强制执行具有特定类型的固定长度结构。
对象和接口
对象存储键值对。接口定义对象的结构以实现类型安全。
objects_interfaces.ts
interface User {
name: string;
age: number;
}
let user: User = { name: "Bob", age: 25 };
console.log(user); // Output: { name: "Bob", age: 25 }
接口确保对象符合预定义的结构,从而提高代码的可读性和可维护性。
枚举
枚举定义一组命名常量。它们通过替换魔法数字或字符串来提高代码的可读性。
enums.ts
enum Status {
Active = "ACTIVE",
Inactive = "INACTIVE",
}
let currentStatus: Status = Status.Active;
console.log(currentStatus); // Output: ACTIVE
枚举提供了一种管理常量的结构化方法,可减少错误并提高代码清晰度。
类型别名
类型别名创建可重用的自定义类型。它们简化了复杂的类型定义并改善了代码组织。
type_aliases.ts
type Point = {
x: number;
y: number;
};
let origin: Point = { x: 0, y: 0 };
console.log(origin); // Output: { x: 0, y: 0 }
类型别名通过将复杂的类型定义抽象为可重用组件,使代码更具可读性。
最佳实践
- 对常量使用
const:首选const用于不可变值 - 显式类型:在复杂场景中使用显式类型以提高清晰度
- 避免
var:首选let和const而非var - 类型推断:利用类型推断处理简单情况
- 接口用于对象:使用接口定义对象结构
来源
本教程通过实际示例介绍了 TypeScript 变量。实现这些模式可以编写更安全、更易于维护的代码。