objection.js icon indicating copy to clipboard operation
objection.js copied to clipboard

TypeScript return type from $relatedQuery is not optional for optional relation

Open ryan-gray-db opened this issue 1 year ago • 0 comments

I have a model with a relation that's optional, however when I use $relatedQuery to get the relation, the return type is not optional. I put together a small project to demonstrate!

Snippet from project:

const Example = async () => {
    const customer = await Customer.query().findById("123").throwIfNotFound();
    /**
     * The program relation on customer is an optional relation. I would expect this to be returned from $relatedQuery
     * as optional, but the typing is just Program
     */
    const program = await customer.$relatedQuery("program");
    console.log(program.id);
}

Example project: https://github.com/ryan-gray-db/objection-relation

ryan-gray-db avatar Jan 24 '23 19:01 ryan-gray-db