+1

Generic function - Tạo hàm linh hoạt với nhiều kiểu dữ liệu

TypeScript cho phép tạo generic function - các hàm có thể làm việc với nhiều kiểu dữ liệu khác nhau mà vẫn đảm bảo type safety:

function wrapInArray<T>(value: T): T[] {
  return [value];
}

// TypeScript tự suy ra kiểu dữ liệu
const numbers = wrapInArray(42); // numbers: number[]
const strings = wrapInArray('hello'); // strings: string[]
const objects = wrapInArray({ id: 1 }); // objects: { id: number }[]

// Generic với nhiều tham số type
function createPair<T, U>(first: T, second: U): [T, U] {
  return [first, second];
}

const pair = createPair('key', 42); // pair: [string, number]

// Generic helper function cho testing
function createTestData<T>(base: T, count: number): T[] {
  return Array.from({ length: count }, () => ({ ...base }));
}

// Sử dụng trong test
interface User { name: string; role: string; }
const testUsers = createTestData<User>({ name: 'User', role: 'tester' }, 3);
// testUsers: User[] với 3 phần tử

💡 Tips: Generic function rất hữu ích khi bạn cần tạo các utility function có thể tái sử dụng trong nhiều test case với các loại dữ liệu khác nhau. Trong automation testing, chúng giúp tạo test data, wrapper, formatter mà không cần viết nhiều phiên bản cho từng kiểu dữ liệu, đồng thời vẫn giữ được các lợi ích của type checking.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí