ts中泛型的使用

本文介绍了如何在TypeScript中使用泛型,包括在函数、类和接口中应用,以及其如何提升代码的重用性、类型安全性和可读性。
摘要由CSDN通过智能技术生成

在TypeScript中,泛型(generics)是一种在定义函数、类或接口时使用的类型占位符。泛型可以增强代码的重用性、类型安全性和可读性。

1.在函数中使用泛型:

function reverse<T>(arr: T[]): T[] {
  return arr.reverse();
}

let numbers = [1, 2, 3, 4, 5];
let reversedNumbers = reverse(numbers);  // 返回 [5, 4, 3, 2, 1]

let strings = ["hello", "world"];
let reversedStrings = reverse(strings);  // 返回 ["world", "hello"]
上面的例子中,<T>表示泛型类型,可以在函数参数和函数返回值中使用。通过使用泛型,函数可以接受不同类型的数组作为参数,并返回相同类型的数组。

2.在类中使用泛型:

class Box<T> {
  private value: T;

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

  getValue(): T {
    return this.value;
  }
}

let numberBox = new Box<number>(42);
let stringValue = numberBox.getValue().toString();  // 返回 "42"

let stringBox = new Box<string>("hello");
let stringLength = stringBox.getValue().length;  // 返回 5
在上面的例子中,Box<T>类中的T表示泛型类型。通过使用泛型,可以在实例化类时指定具体的类型,并在类的方法中使用泛型类型。

3.在接口中使用泛型:

interface KeyValuePair<K, V> {
  key: K;
  value: V;
}

let pair1: KeyValuePair<number, string> = { key: 1, value: "one" };
let pair2: KeyValuePair<string, number> = { key: "two", value: 2 };
在上面的例子中,KeyValuePair<K, V>接口中的KV表示泛型类型。在实例化KeyValuePair时,可以指定具体的类型。

总结:

 TypeScript中的泛型可以在函数、类和接口中使用,它提供了一种更通用的类型定义方式。通过使用泛型,可以增加代码的灵活性和可重用性,同时保持类型的安全性。
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值