返回

类型大师之路:函数返回类型揭秘,TS进阶必学

前端

从基础类型开始

TypeScript的基本类型包括:

  • 数值类型:number
  • 布尔类型:boolean
  • 字符串类型:string
  • 空类型:void
  • undefined类型
  • null类型

这些基本类型是TypeScript类型系统的地基,也是函数返回类型最简单的形式。

联合类型:解决多种可能

当一个函数可能返回多种类型时,可以使用联合类型来指定函数的返回类型。联合类型使用竖线(|)将多种类型连接起来,例如:

function sum(a: number, b: number): number | string {
  if (a + b > 10) {
    return "大于10";
  } else {
    return a + b;
  }
}

这个函数接受两个数字作为参数,并返回一个数字或字符串。如果函数返回数字,则类型是number;如果函数返回字符串,则类型是string。

可选类型:处理缺失值

可选类型使用问号(?)来标记一个类型可以为undefined或null。例如:

function getName(user: { name: string | undefined }): string | undefined {
  return user.name;
}

这个函数接受一个对象作为参数,该对象有一个可选的name属性。如果对象的name属性存在,则函数返回该属性的值;否则,函数返回undefined。

数组类型:有序集合

数组类型使用方括号([])来定义。数组类型的元素可以是任意类型,例如:

function getNumbers(): number[] {
  return [1, 2, 3];
}

这个函数返回一个数字数组。数组类型的长度可以是固定的,也可以是可变的。

元组类型:有序集合

元组类型与数组类型相似,但元组类型的元素类型是固定的。例如:

function getPersonInfo(): [string, number] {
  return ["John", 30];
}

这个函数返回一个元组,第一个元素是字符串,第二个元素是数字。元组类型的元素不能被修改,也不能被添加或删除。

枚举类型:有限集合

枚举类型定义了一组常量值。例如:

enum Color {
  Red,
  Green,
  Blue
}

function getColor(): Color {
  return Color.Red;
}

这个函数返回一个颜色枚举值。枚举类型可以用来表示一组有限的选项,例如:颜色、水果、动物等。

接口类型:约束对象

接口类型定义了一组属性和方法的规范。对象类型必须满足接口类型的要求,才能被赋值给接口类型的变量。例如:

interface Person {
  name: string;
  age: number;
}

function getPerson(): Person {
  return {
    name: "John",
    age: 30
  };
}

这个函数返回一个Person类型的对象。接口类型可以用来约束对象