No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

3D
2H
20M
16S

Generics

21/25
Recursos

Aportes 14

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Por convenci贸n, se utiliza el nombre " T " para dar a conocer que es un generics, es muy com煤n ver este tipo de nombre en otros repositorios, documentaci贸n y tambi茅n es usado en otros lenguajes como java y C#.
Otros nombres utilizados en los generics son:

  • E - Elemento (elementos en una colecci贸n)
  • K - Llave
  • N - N煤mero
  • V - Valor

Esta lectura de aqu铆 me ayudo mucho a entender sobre los generics :3

Generics

Podemos enviar tipado como par谩metro:

import { Dog } from "./8-herencia";

function getValue<T>(value: T) { //*Usar T es una convenci贸n para tus propios tipados
  return value;
}

getValue<number>(12).toFixed()
getValue<string>('12').length
getValue<boolean>(true).toString()

const doggy = new Dog('doggy', 'Snoop dog')
getValue<Dog>(doggy)

// Otro ejemplo de uso gen茅ricos

class Generica<T> {
  // Se define una propiedad de tipo funci贸n generica
  suma?: (x: T, y: T) => T;
}

// Se instancia y se le da la funcionalidad
let instanciaArray = new Generica<(string | number)[]>();
instanciaArray.suma = function(x, y) {
  return [...x, ...y];
}

let variableArray = instanciaArray.suma(['a','b','c'] , ['1','2','3']);
console.log(variableArray);

Resultado:

[ 'a', 'b', 'c', '1', '2', '3' ]

El nombre T viene desde los genericos de JAVA, no por TS

La 鈥淭鈥 viene de Template ya que estos en ingles se conocen como Generic Templates

Los par谩metros de tipado tambi茅n puede ser opcionales:

function getValue<T, U = unknown>(value: T, value2?: U) {
	return { value, value2 };
}

const fifi = new Dog("fifi");

getValue<Dog>(fifi);

Este tema lo toque con Java hace 4 a帽os y es la primera ves que entiendo su uso, deje Java hace tiempo pero es una espina que recien puedo sacar.

Porqu茅 la T en generics?

Lo m谩s probable es que la letra predeterminada a usar sea T porque significa 鈥淭ipo(Type en Ingl茅s)鈥, entonces, al igual que en matem谩ticas, es convencional usar letras consecutivas para m煤ltiples variables que representan el mismo tipo de cosas, por lo que S, T, U, V son comunes. Adem谩s:

  • K se usa a menudo para un tipo de clave gen茅rica
  • V para un tipo de valor asociado.
  • en algunos casos, E se usa para el tipo de 鈥渆lementos鈥 en una colecci贸n.

Fuente: https://stackoverflow.com/questions/68458146/why-do-we-use-the-letters-t-u-in-generics

Es convencional usar camelCase para variables y nombres de m茅todos, UpperCamelCase para nombres de clases y UPPER_SNAKE_CASE para constantes; y es convencional usar T para un par谩metro de tipo generics

Un poco de humor

驴T de Troy?

Podemos entender los gen茅ricos como una especie de 鈥減lantilla鈥 de c贸digo, mediante la cual podemos aplicar un tipo de datos determinado a varios puntos de nuestro c贸digo. Sirven para aprovechar c贸digo, sin tener que duplicarlo por causa de cambios de tipo y evitando la necesidad de usar el tipo 鈥渁ny鈥.

realmente ya habia visto este tema en otro videos, pero hasta este video le entendi correctamente