返回
TypeScript 类型推论
前端
2024-02-16 04:45:21
嗨,你好,我是一位技术博客创作专家,很高兴就TypeScript里有趣的"类型推论"和大家谈谈我的观点。
TypeScript里,在有些没有明确指出类型的地方,类型推论会帮助提供类型。这可以帮助我们写出更少的代码,并减少错误。类型推论主要发生在变量声明、变量赋值、上下文类型推断、函数参数、函数返回值、类成员、类型别名、类型断言等几个方面。
变量声明和变量赋值
let a = 10;
// a 的类型被推断为 number
上下文类型推断
const getDouble = (n: number) => n * 2;
// getDouble 的返回类型被推断为 number
函数参数
function sum(a: number, b: number): number {
return a + b;
}
// sum 的返回类型被推断为 number
函数返回值
function getFullName(firstName: string, lastName: string): string {
return `${firstName} ${lastName}`;
}
// getFullName 的返回类型被推断为 string
类成员
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person = new Person('John Doe', 30);
// person 的类型被推断为 Person
类型别名
type Point = {
x: number;
y: number;
};
const point: Point = { x: 10, y: 20 };
// point 的类型被推断为 Point
类型断言
const value = 'Hello';
// 使用类型断言将 value 的类型断言为 number
const numberValue: number = <number>value;
类型推论是一个非常强大的工具,可以帮助我们写出更简洁、更健壮的代码。希望大家能够熟练掌握类型推论,并将其应用到自己的项目中。