Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como extends

Uso de "extends" y un tipo predeterminado en genéricos en Typescript

¿Qué es A en Typescript, en function f<T extends A = A>():B<T> ? En TypeScript, la sintaxis function f<T extends A = A>(): B<T> define una función genérica f con un parámetro de tipo T que tiene ciertas restricciones y valores predeterminados. Analicemos los componentes: T extends A : Esto significa que el parámetro de tipo T debe ser un subtipo de A . En otras palabras, T solo puede ser un tipo asignable a A . Esta es una forma común de restringir los tipos genéricos para garantizar que tengan ciertas propiedades o métodos. = A : Esto establece un tipo predeterminado para T si no se proporciona ningún tipo al llamar a la función. Si no se especifica ningún tipo, T tomará A como predeterminado. (): B<T> : Esto indica que la función f devuelve un valor de tipo B<T> , donde B es otro tipo que depende de T . En resumen, la función f es una función genérica que toma un parámetro de tipo T , que está restringido a ser un subtipo de A y toma A...

Validación de Typescript de subtipado: cuando una clase declara "extends" de otra, y cuando la extiende realmente.

Un argumento de tipo (es decir, tipo real) no declara "extends supertipo". Pero su parámetro de tipo correspondiente sí declara "extends supertipo". ¿Cómo permite Typescript esta relajación en la concordancia de declaración de supertipos? Vamos a desglosarlo con un ejemplo para entenderlo mejor. Entendiendo el funcionamiento en la garantía de concordancia de supertipos Genéricos y Restricciones Primero, recordemos qué son los genéricos y las restricciones: Genéricos ( <T> ): Permiten escribir componentes o funciones que pueden trabajar con cualquier tipo de dato, manteniendo la flexibilidad y la seguridad de tipos. T es un marcador de posición para el tipo real que se usará. Restricciones de Tipo ( extends ): A menudo, no quieres que tu genérico funcione con cualquier tipo, sino solo con tipos que tengan ciertas propiedades o que hereden de una clase específica. Usas extends para aplicar estas restricciones. Ejemplo de restricción: TypeScript inte...