TypeScript 类型推断
· 阅读需 4 分钟
类型声明是 TypeScript 的灵魂所在。但是,对于之前只接触过 JavaScript 的人,不是逢类型必加。类型推断可以让 TS 写的更像 JS,哈哈。
TypeScript 的类型推论机制可以自动推断变量、函数返回值、参数等的类型,使代码更加简洁,同时保持类型安全。这有助于减少显式类型注解的需求,提高开发效率。以下是 TypeScript 类型推论的一些关键用法和示例:
1. 变量类型推论
当你声明一个变量并对其进行初始化时,TypeScript 会根据赋值的值来推断变量的类型。
let number = 42; // TypeScript 推断 number 的类型为 number
let text = "Hello, world!"; // TypeScript 推断 text 的类型为 string
let isDone = true; // TypeScript 推断 isDone 的类型为 boolean
2. 函数返回值类型推论
TypeScript 可以根据函数的返回值来推断其返回类型。
function add(a: number, b: number) {
return a + b; // TypeScript 推断返回类型为 number
}
3. 函数参数类型推论
在函数调用时,TypeScript 可以根据传递的实参来推断函数参数的类型,尤其是在使用回调函数时。
let numbers = [1, 2, 3];
numbers.forEach((number) => {
console.log(number); // TypeScript 推断 number 的类型为 number
});
4. 上下文类型推论
TypeScript 可以根据上下文来推断某些表达式的类型,例如事件处理器、回调函数等。
document.addEventListener("click", (event) => {
console.log(event.target); // TypeScript 推断 event 的类型为 MouseEvent
});
5. 泛型类型推论
在使用泛型函数或类时,TypeScript 可以根据传递的类型参数来推断具体的类型。
function identity<T>(arg: T): T {
return arg;
}
let output = identity("myString"); // TypeScript 推断 output 的类型为 string