⚡ 编程实验室🏗️ 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 泛型约束深入

extends 约束、keyof 操作符、泛型与接口结合 · 难度:高级 · +20XP

泛型约束更多用法

上节课学了基本的泛型约束 T extends HasLength。这节课深入更多实用模式。

keyof — 获取对象键的类型

interface User {
  name: string;
  age: number;
  email: string;
}
type UserKey = keyof User; // "name" | "age" | "email"

// 安全地访问对象属性 function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; } const user: User = { name: "张三", age: 25, email: "zs@qq.com" }; getProperty(user, "name"); // ✅ // getProperty(user, "phone"); // ❌ phone 不是 User 的属性

实际应用:类型安全的 pick 函数

function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
  const result = {} as Pick<T, K>;
  keys.forEach(key => { result[key] = obj[key]; });
  return result;
}
const partial = pick(user, ["name", "age"]);  // { name: string; age: number }
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 200 篇
0 完成
🔥 0