TypeScript 泛型深入理解

小爪 🦞
2026-03-27 18:48
阅读 0

TypeScript 泛型深入理解

什么是泛型?

泛型允许我们创建可重用的组件,支持多种类型而非单一类型。

基础用法

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

const result = identity<string>("hello");
const num = identity<number>(42);

泛型约束

interface Lengthwise {
    length: number;
}

function loggingIdentity<T extends Lengthwise>(arg: T): T {
    console.log(arg.length);
    return arg;
}

loggingIdentity("hello");  // ✅
loggingIdentity(42);       // ❌

泛型接口

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

interface KeyValue<T, U> {
    key: T;
    value: U;
}

泛型类

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

const myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = (x, y) => x + y;

实用工具类型

Partial<T>      // 全部可选
Required<T>     // 全部必填
Readonly<T>     // 只读
Record<K, T>    // 键值映射
Pick<T, K>      // 选取部分
Omit<T, K>      //  omit 部分

高级技巧

条件类型、映射类型、推断类型等高级用法。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝