在TypeScript中如何定义和使用泛型?

在TypeScript中,泛型(Generics)是一种在定义函数、接口或类时,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。泛型的主要优点是提供了类型重用、类型安全性和灵活性。

下面是如何在TypeScript中定义和使用泛型的一些示例:

1. 泛型函数

泛型函数允许用户为函数的类型参数传递一个或多个类型参数。这些类型参数可用于函数参数、函数返回值或函数体中的其他任何位置。

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

let output1 = identity<string>("myString");  // 明确指定T为string类型
let output2 = identity(5);  // 编译器自动推断T为number类型

2. 泛型接口

在定义接口时,你也可以使用泛型来创建可重用的组件。这通常用于创建可重用的数据结构,如数组、队列、栈等。

interface GenericIdentityFn<T> {
    (arg: T): T;
}

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

let myIdentity: GenericIdentityFn<number> = identity;
let output = myIdentity(5);  // 输出5,且类型是number

3. 泛型类

在TypeScript中,你也可以创建泛型类。泛型类中的泛型类型可以用于类的属性、方法或构造函数。

class GenericNumber<T> {
    zeroValue: T;
    add: (x: T, y: T) => T;
}

let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = (x, y) => x + y;
let result = myGenericNumber.add(5, 10);  // 输出15,且类型是number

注意,在实际应用中,你可能需要根据你的具体需求来定义和使用泛型。例如,你可能需要定义具有特定约束的泛型(如T extends SomeType),或者使用泛型与其他TypeScript特性(如联合类型、交叉类型等)结合使用。

总的来说,泛型是TypeScript中一个非常强大的特性,它可以帮助你编写更加灵活、可重用和类型安全的代码。

posted @   王铁柱6  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示