InferResult
A helper type that allows inferring a select/insert/update/delete query's result type from a query builder or compiled query.
Examples
Infer a query builder's result type:
import { InferResult } from 'kysely'
const query = db
.selectFrom('person')
.innerJoin('pet', 'pet.owner_id', 'person.id')
.select(['person.first_name', 'pet.name'])
type QueryResult = InferResult<typeof query> // { first_name: string; name: string; }[]
Infer a compiled query's result type:
import { InferResult } from 'kysely'
const compiledQuery = db
.insertInto('person')
.values({
first_name: 'Foo',
last_name: 'Barson',
gender: 'other',
age: 15,
})
.returningAll()
.compile()
type QueryResult = InferResult<typeof compiledQuery> // Selectable<Person>[]
type InferResult<C extends Compilable<any> | CompiledQuery<any>> = C extends Compilable<infer O> ? ResolveResult<O> : C extends CompiledQuery<infer O> ? ResolveResult<O> : never;
§Type Parameters
§
C extends Compilable<any> | CompiledQuery<any>
[src]§Type
§
C extends Compilable<infer O> ? ResolveResult<O> : C extends CompiledQuery<infer O> ? ResolveResult<O> : never
[src]