人生不一定要往高处走,也可以四处走走。
TS须知
- ts由微软开发的,自由且开源的编程语言
- ts是js的超集,扩展了js的语法
- ts通过类型注解提供编译时的静态类型检查
- ts的组成:模块、函数、变量、语句和表达式、注释
- ts区分大写和小写字符。
TS优势
- 编译代码的过程中有静态类型检测
- 自动提示方面更加清晰明确
- 引入泛型和ts特有的类型
- 强大的d.ts声明文件
- 轻松编译成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 }
使用场景
- 类型推导:编译器自动推断,代码简洁,适合简单场景。
- 类型注解:开发者显式声明,类型明确,适合复杂或需要强制约束的场景。
- 最佳实践:在简单逻辑中优先使用类型推导,在复杂逻辑或需要明确类型约束时使用类型注解。两者结合使用,既能保持代码简洁,又能确保类型安全。