Generic projection of an enriched job over its underlying activated-job shape
J, used by the marker-driven dependent-presence overloads to narrow
individual response properties — e.g. leaseToken becomes non-null when a job
was activated with withLease: true, or an optional nullable field
({ leaseToken?: null }) when it was not. The absent projection re-types the
property as optional-and-null rather than removing it, so it is not assignable
to the base non-nullable narrowing; J is therefore left unconstrained rather
than bounded by ActivatedJobResult.
The overlay is Omit<EnrichedActivatedJob, keyof ActivatedJobResult> — the
non-base portion of EnrichedActivatedJob — rather than
EnrichedActivatedJobActions directly. This preserves the declaration-merge
compatibility promise for narrowed jobs too: any field a consumer merges onto
the public EnrichedActivatedJob interface (e.g. interface EnrichedActivatedJob { myFlag: boolean }) is carried onto activateJobs({ withLease: true }) results
as well, instead of silently disappearing from the narrowed overload while
remaining on the base one. Defaults to the base ActivatedJobResult, so
EnrichedActivatedJobOf with no argument equals EnrichedActivatedJob.
Generic projection of an enriched job over its underlying activated-job shape
J, used by the marker-driven dependent-presence overloads to narrow individual response properties — e.g.leaseTokenbecomes non-null when a job was activated withwithLease: true, or an optional nullable field ({ leaseToken?: null }) when it was not. The absent projection re-types the property as optional-and-null rather than removing it, so it is not assignable to the base non-nullable narrowing;Jis therefore left unconstrained rather than bounded byActivatedJobResult.The overlay is
Omit<EnrichedActivatedJob, keyof ActivatedJobResult>— the non-base portion of EnrichedActivatedJob — rather thanEnrichedActivatedJobActionsdirectly. This preserves the declaration-merge compatibility promise for narrowed jobs too: any field a consumer merges onto the publicEnrichedActivatedJobinterface (e.g.interface EnrichedActivatedJob { myFlag: boolean }) is carried ontoactivateJobs({ withLease: true })results as well, instead of silently disappearing from the narrowed overload while remaining on the base one. Defaults to the baseActivatedJobResult, soEnrichedActivatedJobOfwith no argument equals EnrichedActivatedJob.