Trung BìnhTypeScript iconTypeScript

Generic constraints (extends) trong TypeScript là gì?

Constraints giới hạn type parameter phải extend một type cụ thể, ngăn dùng với types không compatible.

typescript
// Không có constraint — không access được .length
function getLength<T>(arg: T): number {
  return arg.length; // Error!
}

// Có constraint
function getLength<T extends { length: number }>(arg: T): number {
  return arg.length; // OK
}

// keyof constraint — type-safe property access
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const name = getProperty({ name: 'An', age: 25 }, 'name'); // string

// Multiple constraints
function merge<T extends object, U extends object>(a: T, b: U): T & U {
  return { ...a, ...b };
}

Xem toàn bộ TypeScript cùng filter theo level & chủ đề con.

Mở danh sách TypeScript