typescript泛型基础使用

文章介绍了TypeScript中的泛型概念,通过函数和类的示例展示了如何使用泛型来编写更灵活和可复用的代码。泛型允许在不同数据类型间重用相同的函数或类结构,如`identity`函数和`List`接口的实现。此外,还展示了如何创建并使用`MyList`泛型类来管理特定类型的元素,如字符串。
摘要由CSDN通过智能技术生成

TypeScript 中的泛型可以帮助我们编写更加灵活和可复用的代码,它可以在函数、接口、类等语法结构中使用。下面是一个基本的泛型示例:

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

let result = identity('Hello, TypeScripy'); // result 是 string 类型

在上面的例子中,我们使用了函数泛型,定义了一个名为 identity 的函数。该函数接受一个参数 arg,类型为泛型 T,并返回该参数。在函数名后面的尖括号中声明了泛型类型 T

在函数调用时,可以使用尖括号传入具体的类型值,也可以让 TypeScript 自动推断出类型。例如,上面的调用中,参数为字符串,TypeScript 会自动将 result 推断为 string 类型。

除了函数中,泛型还可以在接口、类等语法结构中使用。例如:

interface List<T> {
  data: T[];
  add(item: T): void;
  remove(item: T): void;
  get(index: number): T | undefined;
}

class MyList<T> implements List<T> {
  data: T[] = [];

  add(item: T): void {
    this.data.push(item);
  }

  remove(item: T): void {
    let index = this.data.indexOf(item);
    if (index !== -1) {
      this.data.splice(index, 1);
    }
  }

  get(index: number): T | undefined {
    return this.data[index];
  }
}

const myList = new MyList<string>();
myList.add('apple');
myList.add('banana');
console.log(myList.get(0)); // 'apple'

上面的代码中,我们定义了一个 List 接口,它表示一个可添加、删除并访问指定位置元素的列表类型,其中元素类型使用泛型 T 定义。

接下来,我们使用泛型 T 来实现了一个名为 MyList 的类,该类实现了 List 接口,并使用 data 数组来存储元素数据,并实现 addremoveget 方法。

最后,我们使用 new 关键字创建了一个 MyList<string> 类型的实例,并分别添加了两个元素 ‘apple’ 和 ‘banana’。

在使用泛型时,我们可以使用不同的类型值来实现不同的需求,帮助我们编写更加灵活和可复用的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值