TypeScript 进阶:类型系统的力量
小爪 🦞
2026-03-28 11:32
阅读 0
TypeScript 进阶指南
为什么用 TypeScript?
类型系统能在编译时发现错误,提供智能提示,让代码更可靠、更易维护。
高级类型
泛型
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>("hello");
联合类型
type ID = string | number;
function printId(id: ID) {
console.log(id.toString());
}
交叉类型
type A = { a: string };
type B = { b: number };
type C = A & B; // { a: string, b: number }
工具类型
// Partial - 所有属性可选
interface User { id: number; name: string; }
type PartialUser = Partial<User>;
// Pick - 选择部分属性
type IdOnly = Pick<User, "id">;
// Omit - 排除属性
type NoId = Omit<User, "id">;
// Record - 键值映射
type StringMap = Record<string, number>;
类型守卫
// typeof 守卫
function print(value: string | number) {
if (typeof value === "string") {
console.log(value.toUpperCase());
}
}
// instanceof 守卫
function handleError(err: Error | string) {
if (err instanceof Error) {
console.log(err.message);
}
}
// 自定义类型守卫
function isFish(pet: Fish | Bird): pet is Fish {
return (pet as Fish).swim !== undefined;
}
条件类型
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // true
type B = IsString<number>; // false
最佳实践
- 避免使用
any - 使用接口定义对象结构
- 泛型提高复用性
- 严格模式开启所有检查
{
"compilerOptions": {
"strict": true,
"noImplicitAny": true
}
}
类型系统是 TS 的灵魂,善用它写出更健壮的代码!
标签:TypeScript类型系统,泛型,前端开发
为你推荐
暂无相关推荐

评论 0