Skip to content

TraitPatch

TraitPatch<T> = { [K in keyof T]?: T[K] | null }

A trait patch, not the same shape as a registration write.

Every key optional and every value nullable, because the write merges: a key you send replaces its stored value, an explicit null deletes it, a key you omit keeps whatever the user last chose. Validation runs against the merged result, so a one-key patch is never refused for a trait it did not touch. Clearing a required trait is refused by the tenant, not by the type: the generated types do not mark which traits are required.

T extends TraitValues = TraitValues