使用TS泛型实现代码复用

TS泛型是一种类型变量,它可用于定义不特定的数据类型,从而实现代码复用,能够更灵活地处理同类型的数据。在函数和类中可以使用泛型,以下是使用 TS 泛型实现代码复用的示例:

使用泛型定义函数,从泛型参数中获取类型,处理后返回这个类型数据:

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

let strings = ['', 'World', 'TypeScript'];
let reversedStrings = reverse(strings);
console.log(reversedStrings); // ["TypeScript", "World", "Hello"]

let numbers = [1, 2, 3, 4, 5];
let reversedNumbers = reverse(numbers);
console.logversedNumbers); // [5, 4, 3, 2, 1]

在上面的示例中,我们定义了一个名为reverse的函数,该函数接受一个 T 类型的参数(它是一个基于数组的泛型参数),并返回一个 T 类型的数组。 在此示例中,我们使用了 reverse 数组方法对传入的参数进行翻转,从而实现了一个通用的翻转函数。

除此之外,还可以定义一个泛型类,例如定义一个泛型栈:

class Stack<T> {
    private items: T[] = [];

    push(item: T) {
        this.items.push(item);
    }

    pop(): T | undefined {
        return this.items.pop();
    }
}

const = new Stack<number>();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
console.log(stack.pop()); // 2
console.log(stack.pop()); // 1

在泛型类中,我们定义了一个 items 数组,该数组的元素类型被指定为 T 类型,然后我们定义了两个方法:push() 和 pop(),用于向栈中添加和删除元素。在构造时,我们将 T 类型指定为 number 类型,从而创建了一个泛型栈对象。我们可以使用 push() 方法添加 number 类型的元素,使用 pop() 方法获取 number 类型的元素。

总结:使用 TS 泛型,能够更灵活地处理不同类型的数据,从而实现代码的复用。可以使用泛型定义函数、类和接口等,以便于处理不同类型的数据。通过使用泛型,能够减少冗余代码,提高代码的可重复使用性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值