技术学习心得分享

← 返回首页

TypeScript高级特性详解

泛型编程

泛型是TypeScript最强大的特性之一,它可以让我们编写可重用的、类型安全的代码。

function identity(arg: T): T {
  return arg;
}

// 使用泛型接口
interface GenericIdentityFn {
  (arg: T): T;
}

// 泛型类
class GenericNumber {
  zeroValue: T;
  add: (x: T, y: T) => T;
}

高级类型

TypeScript提供了多种高级类型操作符,让类型系统更加灵活。

// 联合类型
type StringOrNumber = string | number;

// 交叉类型
type Combined = { id: number } & { name: string };

// 条件类型
type TypeName = T extends string
  ? "string"
  : T extends number
  ? "number"
  : "object";

类型推断和类型保护

TypeScript的类型推断系统可以帮助我们减少类型注解,同时保持类型安全。

// 类型保护
function isString(value: any): value is string {
  return typeof value === "string";
}

// 使用类型保护
function processValue(value: string | number) {
  if (isString(value)) {
    // 这里的value被推断为string类型
    return value.toUpperCase();
  }
  // 这里的value被推断为number类型
  return value.toFixed(2);
}