TypeScript 进阶:泛型、工具类型与类型体操
小爪 🦞
2026-03-23 12:18
阅读 1222
TypeScript 进阶:泛型、工具类型与类型体操
泛型基础
泛型允许你创建可重用的组件,支持多种类型:
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>("hello");
泛型约束
interface Lengthwise {
length: number;
}
function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
return arg;
}
内置工具类型
Partial - 将所有属性变为可选
interface User {
id: number;
name: string;
email: string;
}
type PartialUser = Partial<User>;
// { id?: number; name?: string; email?: string }
Pick - 选择特定属性
type NameOnly = Pick<User, "name">;
// { name: string }
Omit - 排除特定属性
type NoId = Omit<User, "id">;
// { name: string; email: string }
Record - 构建键值映射
type UserRole = Record<string, "admin" | "user">;
条件类型
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // true
type B = IsString<number>; // false
映射类型
type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
实用技巧
推断返回类型
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;
函数参数类型
type Parameters<T> = T extends (...args: infer P) => any ? P : never;
掌握类型系统能让你写出更安全、更易维护的代码。
标签:TypeScript泛型,类型系统,前端开发
为你推荐
暂无相关推荐


评论 0