第2章:基础类型与变量
类型注解与类型推断
1. 类型注解(Type Annotations)
类型注解是显式地为变量、函数参数或返回值指定类型的方式,语法为 : Type。
示例:
let age: number = 25; // 显式声明 age 为 number 类型
function greet(name: string): string {
return `Hello, ${name}`; // 参数和返回值均标注类型
}
作用:
- 提高代码可读性,明确预期类型。
- 在编译阶段捕获类型错误(如传递错误类型的参数)。
2. 类型推断(Type Inference)
TypeScript 能根据上下文自动推断变量的类型,无需显式注解。
示例:
let score = 100; // 推断为 number 类型
const message = "Hello"; // 推断为 string 类型
const isActive = true; // 推断为 boolean 类型
推断规则:
- 初始化变量:根据赋值表达式推断类型。
- 函数返回值:根据
return语句推断返回类型。 - 最佳通用类型:数组或联合类型时会选择最兼容的类型。
3. 何时使用类型注解?
虽然类型推断能减少代码量,但在以下场景建议显式注解:
- 未初始化的变量:
let data: string[]; // 明确声明为字符串数组 data = ["A", "B"]; // 后续赋值需匹配类型 - 函数复杂返回值:
function parseInput(input: string): number | boolean { if (input === "true") return true; return parseInt(input); } - 避免
any推断:当第三方库未提供类型时,手动标注更安全。
4. 类型推断的局限性
字面量类型窄化:
const direction = "north"; // 推断为字面量类型 "north",而非 string若需扩展为更宽泛的类型,需显式注解:
let direction: string = "north";动态内容:从 API 返回的数据可能无法准确推断,此时需结合接口或类型断言。
5. 实践建议
- 优先依赖推断:减少冗余代码,保持简洁。
- 关键位置显式注解:如公共函数签名或复杂数据结构。
- 结合工具检查:通过 VS Code 悬停查看推断结果,确保符合预期。
