ts 中泛型的简单使用

发布时间 2023-10-08 16:38:36作者: 踏浪小鲨鱼
interface ApiResponseData<T> {
  code: number
  data: T
  message: string
}

在这段 TypeScript 代码中,T 是一个泛型参数(generic parameter),用于描述 ApiResponseData<T> 的类型。泛型可以理解为是一种占位符,它能够让我们在定义函数或类型时先不确定具体的类型,而是让使用者在调用时指定具体的类型。

ApiResponseData<T> 中,data 属性的类型被指定为泛型类型 T,表示该属性可以接受任何类型的值。当我们实例化 ApiResponseData<T> 类型时,需要为 T 指定一个具体的类型,并在 data 属性中传入相应的值。例如:

typescript复制代码
interface User {
  id: number,
  name: string,
  email: string,
}

const response: ApiResponseData<User> = {
  code: 200,
  data: {
    id: 123,
    name: 'John Doe',
    email: 'johndoe@example.com'
  },
  message: 'Success'
};

在上述示例中,我们实例化了一个 ApiResponseData<User> 类型的对象,并将其赋值给变量 response。由于 T 被指定为 User 类型,因此 response.data 属性的类型也被自动确定为 User 类型,可以包含 idnameemail 三个属性。

通过使用泛型,我们可以编写更加通用、灵活的代码,在不同的场景下可以适应多种数据类型的处理需求。