1. 基础类型推论:
当你声明一个变量并赋予它一个初始值,TypeScript 会根据该初始值的类型推断出变量的类型。
let x = 10; // 类型推断为 number
let y = "hello"; // 类型推断为 string
2. 最佳通用类型:
当一个变量被赋予多个类型的值时,TypeScript 会推断出一个最适合的通用类型。
let values = [1, "two", true]; // 类型推断为 (string | number | boolean)[]
3. 上下文类型推论:
当一个表达式的类型与所期望的类型一致时,TypeScript 会使用所期望的类型来推断表达式的类型。
window.onmousedown = function (mouseEvent) {
console.log(mouseEvent.button); // 类型推断为 MouseEvent
};
4. 函数返回值类型推论:
当函数有返回值时,TypeScript 会根据 return 语句的类型推断函数的返回值类型。
function add(a: number, b: number) {
return a + b; // 返回值类型推断为 number
}
5. 显示注解类型:
在某些情况下,你可能想要显式地为变量或函数参数提供类型注解,而不依赖于类型推论。
let z: number = 5; // 显式注解类型为 number
function multiply(a: number, b: number): number {
return a * b; // 显式注解返回值类型为 number
}
6. 结构化类型推论:
TypeScript 是基于结构化类型的,这意味着类型推论会考虑对象的形状而不是明确的类型注解。
interface Point {
x: number;
y: number;
}
let point = { x: 10, y: 20 }; // 类型推断为 Point
7. 默认参数和可选参数类型推论:
当函数有默认参数或可选参数时,TypeScript 会推断出相应的参数类型。
function greet(name = "world", age?: number) {
console.log(`Hello, ${name}! Age: ${age}`);
}
greet(); // 类型推断 name 为 string,age 为 undefined
greet("Alice", 25); // 类型推断 name 为 string,age 为 number
类型推论使得代码更加简洁,同时保持了类型安全。在大部分情况下,TypeScript 可以通过类型推论准确地确定变量和表达式的类型,减少了显式类型注解的需要。
转载请注明出处:http://www.zyzy.cn/article/detail/4700/TypeScript