【ts】——类型注解和类型推导

3 阅读2分钟

人生不一定要往高处走,也可以四处走走。

TS须知

  1. ts由微软开发的,自由且开源的编程语言
  2. ts是js的超集,扩展了js的语法
  3. ts通过类型注解提供编译时的静态类型检查
  4. ts的组成:模块、函数、变量、语句和表达式、注释
  5. ts区分大写和小写字符。

TS优势

  1. 编译代码的过程中有静态类型检测
  2. 自动提示方面更加清晰明确
  3. 引入泛型和ts特有的类型
  4. 强大的d.ts声明文件
  5. 轻松编译成js

类型注解和类型推导

类型推导(Type Inference)和类型注解(Type Annotation)是两种用于定义变量、函数参数或返回值类型的方式,它们的核心区别在于类型定义的主动性代码编写的灵活性

类型注解(Type Annotation)

  • 定义:开发者显式声明变量、函数参数或返回值的类型。
  • 特点
    • 显式性:类型由开发者明确指定,编译器无需推断。
    • 明确性:类型信息清晰,便于代码维护和团队协作。
    • 灵活性:适用于复杂逻辑或需要强制类型约束的场景。
  • 示例
    	let message: string = "Hello, TypeScript!"; // 显式声明为 string 类型
    	function add(a: number, b: number): number {
    	  return a + b; // 显式声明返回类型为 number
    	}
    

类型推导(Type Inference)

  • 定义:TypeScript 编译器根据代码上下文自动推断类型,无需开发者显式声明。
  • 特点
    • 自动性:编译器通过初始化值、函数返回值或上下文逻辑自动推断类型。
    • 简洁性:减少显式类型声明,代码更简洁。
    • 局限性:在复杂逻辑或无明确上下文时,可能无法准确推断类型。
  • 示例
    	let message = "Hello, TypeScript!"; // 编译器自动推断为 string 类型
    	function add(a: number, b: number) {
    	  return a + b; // 编译器自动推断返回类型为 number
    	}
    

使用场景

  • 类型推导:编译器自动推断,代码简洁,适合简单场景。
  • 类型注解:开发者显式声明,类型明确,适合复杂或需要强制约束的场景。
  • 最佳实践:在简单逻辑中优先使用类型推导,在复杂逻辑或需要明确类型约束时使用类型注解。两者结合使用,既能保持代码简洁,又能确保类型安全。