It allows to create custom builders with specific methods.
Example:
class MyBuilder<T, /*...*/> extends ObjectBuilder</*...*/> {
/* properties from constructor, etc... */
public withUpdate(): MyBuilder</*...*/> {
return this.with("update", () => (data: T) => this.myMethod(this.myProperty, data));
}
}