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