类型注解和类型推论
类型注解
当使用 const
、 var
或 let
声明变量时,可以选择性地添加类型注释以明确指定变量的类型:
1
2
3
4
5
6
7
const name: string = 'Tom'; // 显式注解 name 的类型为 string
let age: number = 25; // 显式注解 age 的类型为 number
let isStudent: boolean = false; // 显式注解 isStudent 的类型为 boolean
function add(a: number, b: number): number {
// 显式注解 add 函数的参数和返回值类型
return a + b;
}
类型推论
类型推论是 TypeScript 自动推断变量或表达式的类型的能力。如果你没有显式地指定类型,TypeScript 会根据变量的初始值或上下文自动推断出类型。
1
2
3
4
5
6
7
const name = 'Tom'; // TypeScript 推断 name 的类型为 string
let age = 25; // TypeScript 推断 age 的类型为 number
let isStudent = false; // TypeScript 推断 isStudent 的类型为 boolean
function add(a: number, b: number) {
// TypeScript 推断返回值的类型为 number
return a + b;
}
类型注解 vs 类型推论
特性 | 类型注解(Type Annotation) | 类型推论(Type Inference) |
---|---|---|
定义方式 | 显式地为变量或表达式指定类型 | TypeScript 自动推断类型 |
代码示例 | let age: number = 25; | let age = 25; |
适用场景 | 需要明确类型时(如函数参数、返回值) | 变量初始值明确时 |
代码可读性 | 高,明确表达类型 | 较低,类型是隐式的 |
灵活性 | 严格,类型固定 | 灵活,类型根据上下文动态推断 |
开发效率 | 需要手动写类型,稍慢 | 自动推断,更快 |
总结
- 类型注解:开发者手动指定类型,适合需要明确类型的场景,提高代码的可读性和可维护性。
- 类型推论:TypeScript 自动推断类型,适合变量初始值明确的场景,简化代码。
在实际开发中,通常会将两者结合使用:
- 对于函数的参数和返回值,推荐使用类型注解,以确保类型安全。
- 对于变量初始化,如果类型明确,可以依赖类型推论,减少代码冗余。
类型注解和类型推论
http://xiaowhang.github.io/archives/2586672183/