PL
TypeScript - generyczna funkcja strzałkowa
3
points
W tym krótkim artykule przyjrzymy się, jak utworzyć generyczną funkcję strzałkową w jezyku TypeScript. Zaprezentowane rozwiązanie działa dla plików *.ts
- dla plików typu *.tsx
rowiązanie problemu umieszczono w notatce Uwaga pod pierwszym przykładem.
Szybkie rozwiązanie:
let print = <T> (entry: T) : void => {
consle.log(entry);
};
print(100); // 100
print(true); // prawda
print('text'); // tekst
Uwagi:
- podając agrument dla funkcji
print<number>(100)
,print<boolean>(true)
,print<string>('text')
,- dla plików
*.tsx
należy używać zapisu typu:
let print = <T extends {}> (entry: T) : void => { /* kod */ }
Bardziej skomplikowany przykład
W tym przykładzie użyliśmy generycznej funkcji strzałkowej do iteracji po tablicy. Funkcja iterate
przyjmuje tablicę oraz referencje do funkcji wykonywanej jako iteracja. Obydwa argumenty są generyczne dzięki czemu możemy pracować na elementach tablicy posiadających różny typ.
interface Iteration<T> {
(index : number, item : T) : void;
}
let iterate = <T> (array : Array<T>, iteration : Iteration<T>) : void => {
for(let i = 0; i < array.length; ++i) {
iteration(i, array[i]);
}
};
// Przykład użycia:
let array : Array<number> = [ 1, 2, 3 ];
let iteration = (index : number, item : number) : void => {
console.log(`${index} : ${item}`);
};
iterate(array, iteration);
Wynik:
0 : 1
1 : 2
2 : 3
Uruchom kod tutaj.