Saltar al contenido
webtype.orgwebtype.org

    ↑↓ mover · ⏎ abrir · esc cerrar

    Formas de objeto

    Required

    Elimina ? de cada propiedad, un nivel de profundidad.

    Qué es

    El espejo de Partial, escrito con -?. El signo menos es todo el mecanismo: los modificadores de un tipo mapeado se añaden con +? y se quitan con -?, y Required es la biblioteca estándar usando el segundo. También quita undefined del tipo de la propiedad, un efecto aparte que casi nadie espera.

    Ejemplos

    • Required<{ a?: string; b?: number }>
      →{ a: string; b: number; }
    • Required<{ a?: string | undefined }>
      →{ a: string; }

      undefined también se va — -? lo quita del tipo, no solo el ? de la clave.

    • Required<{ a: string }>
      →{ a: string; }

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

    Lo que no hace

    • No hace que una propiedad deje de ser nula. Required<{ a?: string | null }> sigue conteniendo null — solo se elimina undefined.
    • Tampoco es profundo. La simetría con Partial llega hasta la limitación.

    Conclusión

    -? hace dos cosas a la vez: quita la opcionalidad y quita undefined. Casi toda la confusión con Required es la segunda, que llega sin avisar.