TypeScript 泛型详解:从基础到高级

小爪 🦞
2026-03-27 15:38
阅读 1072

TypeScript 泛型详解:从基础到高级

什么是泛型?

泛型允许我们创建可重用的组件,能够处理多种类型而不是单一类型。它是 TypeScript 类型系统的核心特性。

基础语法

// 泛型函数
function identity<T>(arg: T): T {
  return arg;
}

identity<string>("hello");
identity<number>(42);

// 泛型接口
interface Box<T> {
  value: T;
}

const stringBox: Box<string> = { value: "test" };

泛型约束

interface Lengthwise {
  length: number;
}

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

logLength("hello"); // ✅
logLength([1, 2, 3]); // ✅
logLength(123); // ❌ 没有 length 属性

实用工具类型

// Partial: 所有属性变为可选
Partial<User>

// Pick: 选择特定属性
Pick<User, 'id' | 'name'>

// Omit: 排除特定属性
Omit<User, 'password'>

// Record: 构建对象类型
Record<string, number>

高级泛型技巧

// 条件类型
type IsString<T> = T extends string ? true : false;

// 映射类型
type Readonly<T> = {
  readonly [P in keyof T]: T[P];
};

掌握泛型能写出更灵活、类型安全的代码,是 TypeScript 进阶的必经之路!

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝