Estoy tratando de leer el código fuente de la biblioteca Turbo y encontré el siguiente código:
export class FrameElement extends HTMLElement { static delegateConstructor: new (element: FrameElement) => FrameElementDelegate }
Entiendo que está creando una propiedad estática llamada delegateConstructor
en la clase FrameElement
, y la expresión new (element: FrameElement) => FrameElementDelegate
es el tipo de delegateConstructor
.
No entiendo qué tipo representa esta expresión y qué propósito intenta lograr esa línea. ¿ delegateConstructor
es una función que toma un FrameElement
y devuelve un FrameElementDelegate
? Además, ¿cuál es el uso de la new
palabra clave en este contexto?