返回

TypeScript 类型推论

前端

嗨,你好,我是一位技术博客创作专家,很高兴就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;

类型推论是一个非常强大的工具,可以帮助我们写出更简洁、更健壮的代码。希望大家能够熟练掌握类型推论,并将其应用到自己的项目中。