An Interest In:
Web News this Week
- March 24, 2024
- March 23, 2024
- March 22, 2024
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
Typescript: La palabra clave extends
Este artculo fue originalmente escrito en https://matiashernandez.dev
La palabra clave extends
Typescript es un lenguaje completo (un lenguaje completo de Turing); por lo tanto, tiene algunas palabras clave con las que trabajar. Una de ellas es extends
.
Esta palabra clave puede ser muy confusa ya que engloba un par de conceptos o significados que dependen del contexto en el que se utilice.
Herencia con extends
La herencia en Typescript se refiere a permitir crear nuevas interfaces que heredan o extienden el comportamiento de una anterior.
interface User { firstName: string; lastName: string; email: string;}interface StaffUser extends User { roles: Array<Role>}
Lo que se puede ver en el fragmento anterior es:
- La interfaz
User
describe un tipo con algunas propiedades que representan a un usuario. - La interfaz
StaffUser
representa a un usuario con las mismas propiedades queUser
pero adems una ms: roles. - Este uso de extends se puede utilizar para heredar de mltiples interfaces simultneamente con slo utilizar nombres separados por comas de las interfaces base.
interface StaffUser extends User, RoleUser {}
Este comportamiento tambin se puede utilizar para extender una Clase
extends como restriccin.
Tambin se puede utilizar extends
para restringir el tipo o limitar el mbito de un tipo.
export type QueryFunction< T = unknown, TQueryKey extends QueryKey = QueryKey,> = (context: QueryFunctionContext<TQueryKey>) => T | Promise<T>
El ejemplo anterior (de una implementacin real de tanstack-query) muestra un tipo llamado QueryFunction
. Este es un tipo genrico que acepta dos valores: T
y TQueryKey
.
El uso genrico aqu es muy similar a una funcin en javascript, que acepta dos argumentos.
Lo que importa aqu es observar el uso de la palabra clave extends
: TQueryKey extends QueryKey = QueryKey
. Esto se puede leer como TQueryKey
y debe ser de tipo Query
con un valor por defecto de QueryKey
.
El uso anterior de extends acotando o restringiendo el genrico es la piedra angular para poder implementar tipos condicionales ya que los extends se utilizarn como condicin para comprobar si un genrico est fuera de un tipo determinado.
nete a Micro-bytes Sgueme en Twitter Apoya mi trabajo
Original Link: https://dev.to/matiasfha/typescript-la-palabra-clave-extends-4nci
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To