类型注解和类型推论

类型注解

当使用 constvarlet 声明变量时,可以选择性地添加类型注释以明确指定变量的类型:

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/
作者
Xiaowhang
发布于
2025年1月3日
许可协议