Els generics són una característica poderosa de TypeScript que permeten crear components reutilitzables que poden treballar amb diferents tipus de dades. Això proporciona una manera de crear funcions, classes i interfícies que no estan limitades a un sol tipus de dades, augmentant així la flexibilitat i la reutilització del codi.
Conceptes Clau
-
Definició de Generics:
- Els generics permeten definir funcions, classes o interfícies que poden treballar amb qualsevol tipus de dades.
- S'utilitzen per evitar la repetició de codi i per garantir la seguretat de tipus.
-
Sintaxi de Generics:
- Els generics es defineixen utilitzant els símbols
<T>, onTés un marcador de posició per a un tipus que es determinarà en el moment de la invocació.
- Els generics es defineixen utilitzant els símbols
-
Avantatges dels Generics:
- Reutilització del Codi: Permeten escriure codi més genèric i reutilitzable.
- Seguretat de Tipus: Proporcionen verificació de tipus en temps de compilació.
- Flexibilitat: Permeten treballar amb diferents tipus de dades sense perdre la seguretat de tipus.
Exemples Pràctics
Funcions Generiques
Una funció genèrica pot acceptar arguments de qualsevol tipus i retornar un valor del mateix tipus:
function identity<T>(arg: T): T {
return arg;
}
// Ús de la funció genèrica
let output1 = identity<string>("Hola, món!"); // T és string
let output2 = identity<number>(42); // T és numberClasses Generiques
Les classes generiques permeten crear estructures de dades que poden treballar amb qualsevol tipus:
class Caixa<T> {
private contingut: T;
constructor(contingut: T) {
this.contingut = contingut;
}
getContingut(): T {
return this.contingut;
}
}
// Ús de la classe genèrica
let caixaDeNombres = new Caixa<number>(123);
console.log(caixaDeNombres.getContingut()); // 123
let caixaDeText = new Caixa<string>("Hola");
console.log(caixaDeText.getContingut()); // HolaInterfícies Generiques
Les interfícies generiques permeten definir contractes que poden treballar amb qualsevol tipus:
interface Parell<T, U> {
primer: T;
segon: U;
}
let parell: Parell<string, number> = { primer: "Hola", segon: 42 };
console.log(parell);Exercicis Pràctics
Exercici 1: Funció Genèrica
Crea una funció genèrica reverseArray que accepti un array de qualsevol tipus i retorni un nou array amb els elements en ordre invers.
function reverseArray<T>(items: T[]): T[] {
return items.reverse();
}
// Prova la funció
let nombres = [1, 2, 3, 4];
let text = ["a", "b", "c", "d"];
console.log(reverseArray(nombres)); // [4, 3, 2, 1]
console.log(reverseArray(text)); // ["d", "c", "b", "a"]Exercici 2: Classe Genèrica
Crea una classe genèrica Stack que implementi una estructura de dades de pila (LIFO).
class Stack<T> {
private elements: T[] = [];
push(element: T): void {
this.elements.push(element);
}
pop(): T | undefined {
return this.elements.pop();
}
peek(): T | undefined {
return this.elements[this.elements.length - 1];
}
isEmpty(): boolean {
return this.elements.length === 0;
}
}
// Prova la classe
let stack = new Stack<number>();
stack.push(10);
stack.push(20);
console.log(stack.pop()); // 20
console.log(stack.peek()); // 10Conclusió
Els generics en TypeScript són una eina essencial per crear codi flexible i reutilitzable. Permeten treballar amb diferents tipus de dades sense comprometre la seguretat de tipus, cosa que és crucial en projectes grans i complexos. Practicar amb generics ajudarà a millorar la teva capacitat per escriure codi més net i eficient.
Dramaturg amb TypeScript: De Principiant a Avançat
Mòdul 1: Introducció a Playwright i TypeScript
- Què és Playwright?
- Configuració del Teu Entorn de Desenvolupament
- Introducció a TypeScript
- Sintaxi Bàsica de TypeScript
Mòdul 2: Començant amb Playwright
- Instal·lant Playwright
- Creant el Teu Primer Script de Playwright
- Comprenent els Conceptes Bàsics de Playwright
- Executant Proves de Playwright
Mòdul 3: Fonaments de Playwright i TypeScript
- Escrivint Proves en TypeScript
- Utilitzant Interfícies i Tipus de TypeScript
- Depurant Proves de Playwright
- Gestionant Codi Asíncron
Mòdul 4: Funcions Avançades de Playwright
- Treballant amb Selectors
- Gestionant Múltiples Pàgines i Frames
- Intercepció de Xarxa i Simulació
- Emulant Dispositius i Geolocalització
Mòdul 5: Estratègies d'Automatització de Proves
- Organitzant Proves i Suites de Proves
- Utilitzant Fixtures i Hooks
- Execució Paral·lela de Proves
- Integració Contínua amb Playwright
Mòdul 6: Tècniques Avançades de TypeScript
- Generics en TypeScript
- Tipus Avançats de TypeScript
- Decoradors de TypeScript
- Millors Pràctiques de TypeScript i Playwright
Mòdul 7: Aplicacions Reals de Playwright
- Proves de Cap a Cap amb Playwright
- Proves Visuals amb Playwright
- Proves de Rendiment amb Playwright
- Estudi de Cas: Implementant Playwright en un Projecte
