Saltar al contenido
webtype.orgRequired

    ↑↓ 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 5.9.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.