⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

TypeScript 泛型 — 可复用的类型

泛型让你写类型安全的可复用代码,告别 any · 难度:高级 · +20XP

泛型是什么?

泛型(Generics)让函数、接口、类可以处理任意类型,同时保持类型安全。之前你学 JS 时用 any 来"通吃",但 any 不安全。泛型既灵活又安全。

一个例子说明泛型

// ❌ 不用泛型 — 用 any,不安全
function identity(arg: any): any {
  return arg;
}
const result = identity("hello");
// result 的类型是 any,无法获得任何代码提示

// ✅ 用泛型 — 保留类型信息 function identity<T>(arg: T): T { return arg; } const result = identity("hello"); // result 的类型是 string! const num = identity(42); // num 的类型是 number!

泛型约束

// 要求 T 必须有 length 属性
interface HasLength { length: number; }
function logLength<T extends HasLength>(arg: T): T {
  console.log(arg.length);
  return arg;
}
logLength("hello");  // ✅ 字符串有 length
logLength([1,2,3]);  // ✅ 数组有 length
// logLength(123);    // ❌ 数字没有 length!

实际应用:通用 API 响应类型

interface ApiResult<T> {
  code: number;
  data: T;
  message: string;
}

// 请求用户列表 type UserList = ApiResult<User[]>; // 请求单个用户 type UserDetail = ApiResult<User>;

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 200 篇
0 完成
🔥 0