Una restricción de genérico (T extends ...) limita qué tipos puede ser un parámetro genérico, para que puedas usar de forma segura ciertas propiedades o métodos sobre él. Sin una restricción, un genérico podría ser cualquier cosa, así que no puedes asumir que tenga ningún miembro.
longestBad<T>(: T, : T) {
a. > b. ? a : b;
}
longest<T { : }>(: T, : T): T {
a. > b. ? a : b;
}
(, );
([, ], []);
(, );
