Generics em TypeScript são uma maneira flexível de escrever código que funciona com diferentes tipos de dados, mantendo a segurança de tipos. Com generics, você pode criar funções, classes e interfaces que podem ser parametrizadas com tipos específicos. Isso permite reutilizar código com diferentes tipos de dados, tornando seu código mais genérico e flexível.
// Função que obtém o primeiro elemento de um array genérico
function getFirstElement<T>(data: T[]): T | null {
if (!data.length) {
return null;
}
const [firstElement] = data;
return firstElement;
}
function getFirstElement<T>(data: T[]): T | null { ... } é uma função chamada getFirstElement que usa um tipo genérico <T>. Isso significa que a função pode trabalhar com qualquer tipo de dados, representado por T. Ela recebe um argumento data que é um array de elementos do tipo T. A função retorna um elemento do tipo T ou null se o array estiver vazio.if (!data.length) { return null; } verifica se o array data está vazio. Se estiver vazio, a função retorna null, indicando que não há primeiro elemento para retornar.const [firstElement] = data; desestrutura o array data e atribui seu primeiro elemento a uma variável chamada firstElement.return firstElement; retorna o firstElement, que pode ser de qualquer tipo T, como o primeiro elemento do array.Depois de definir a função, o código cria dois arrays:
const stringArray: string[] = ['Lucas', 'Fernanda', 'Gabriel', 'Maria'];
const numberArray: number[] = [1, 2, 3, 4, 5, 6];
stringArray é um array de strings e numberArray é um array de números.Em seguida, a função getFirstElement é chamada duas vezes, uma vez com stringArray e outra vez com numberArray, especificando o tipo genérico T como string e number, respectivamente:
console.log(getFirstElement<string>(stringArray));
console.log(getFirstElement<number>(numberArray));
getFirstElement<string>(stringArray) retorna o primeiro elemento do array de strings, que é "Lucas", e o imprime no console.getFirstElement<number>(numberArray) retorna o primeiro elemento do array de números, que é 1, e o imprime no console.