TypeScript 泛型


一、泛型是什么?

TypeScript中的泛型(Generics)是一种强大的工具,它允许你编写可重用的、通用的代码,不仅适用于特定的数据类型,而是可以适用于多种数据类型。泛型可以用于函数、类和接口,以提高代码的灵活性和类型安全性。

泛型的主要目的是在编写代码时提供类型安全性,同时保持代码的通用性。它允许你编写与数据类型无关的代码,而不必为每种数据类型都编写重复的代码。

二、主要用途和示例

1.泛型函数

泛型函数可以接受不特定的数据类型作为参数,从而使函数可以处理多种数据类型。

function identity<T>(arg: T): T {
  return arg;
}

const result1 = identity(5); // result1的类型为number
const result2 = identity("hello"); // result2的类型为string

2.泛型类

泛型类可以在类中使用泛型类型参数,以处理多种数据类型。

class Box<T> {
  value: T;

  constructor(value: T) {
    this.value = value;
  }
}

const box1 = new Box<number>(5);
const box2 = new Box<string>("hello");

3.泛型接口

泛型接口可以定义通用接口,以处理多种数据类型。

interface Pair<T, U> {
  first: T;
  second: U;
}

const pair1: Pair<number, string> = { first: 1, second: "two" };
const pair2: Pair<string, boolean> = { first: "hello", second: true };

4.泛型约束

泛型可以受到约束,以限制可以传递给泛型的类型。

function logLength<T extends { length: number }>(arg: T): void {
  console.log(arg.length);
}

logLength("hello"); // 合法,字符串具有length属性
logLength(5); // 错误,数字没有length属性

总结

泛型的主要优点是它可以提高代码的可重用性和类型安全性,允许你编写更通用的代码,同时保持类型检查。通过泛型,你可以编写更具扩展性和灵活性的代码,以适应各种数据类型,而不必重复编写相似的逻辑。这使得泛型在处理集合、数据结构、异步编程等方面非常有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值