Saltar al contenido
webtype.orgInstanceType

    ↑↓ mover · ⏎ abrir · esc cerrar

    Funciones

    InstanceType

    Lo que produce un constructor cuando lo llamas con `new`.

    Qué es

    La versión de clase de `ReturnType`, y existe por separado porque un nombre de clase significa dos cosas: el valor constructor y el tipo de instancia. `typeof Foo` es el constructor; `Foo` ya es la instancia. `InstanceType` importa cuando solo tienes el constructor — pasado como argumento, guardado en un registro, producido por una factoría.

    Ejemplos

    • InstanceType<typeof Session>
      Session
    • ConstructorParameters<typeof Session>
      []
    • InstanceType<typeof Session>['id']
      string

      Una vez tienes el tipo de instancia, todo lo demás — `keyof`, acceso indexado, tipos mapeados — se aplica con normalidad.

    Cada tipo resuelto de arriba lo imprimió TypeScript 5.9.3, no se escribió a mano.

    Lo que no hace

    • No acepta el nombre de la clase directamente. `InstanceType<Session>` es un error, porque `Session` ya es la instancia — quieres `typeof Session`.
    • No incluye miembros estáticos. Esos viven en el constructor, que es lo que pasaste, no lo que obtuviste.

    Conclusión

    Un nombre de clase son dos tipos con una sola palabra. `typeof C` es el constructor, `C` es la instancia, y casi todo error confuso con genéricos de clase son esos dos intercambiados.