JavaScript: Partially override or replace type of successful response

Override the type of the returned data field in the response.

Examples

Complete Override type of successful response

const { data } = await supabase
  .from('countries')
  .select()
  .overrideTypes<Array<MyType>, { merge: false }>()

Complete Override type of object response

const { data } = await supabase
  .from('countries')
  .select()
  .maybeSingle()
  .overrideTypes<MyType, { merge: false }>()

Partial Override type of successful response

const { data } = await supabase
  .from('countries')
  .select()
  .overrideTypes<Array<{ status: "A" | "B" }>>()

Partial Override type of object response

const { data } = await supabase
  .from('countries')
  .select()
  .maybeSingle()
  .overrideTypes<{ status: "A" | "B" }>()

Example 5

// Merge with existing types (default behavior)
const query = supabase
  .from('users')
  .select()
  .overrideTypes<{ custom_field: string }>()

// Replace existing types completely
const replaceQuery = supabase
  .from('users')
  .select()
  .overrideTypes<{ id: number; name: string }, { merge: false }>()