Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

UseLiveQueryReturn is missing fields that electric appends

Cerrado Apto para principiantes
#1,676 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
frontend

Línea de trabajo

Comienza localizando las definiciones de TypeScript para UseLiveQueryReturn y el tipo de retorno de live query de ElectricCollection; después, compáralas con los campos añadidos por Electric. Reproduce el ejemplo de Action y verifica que el resultado inferido de useLiveQuery satisface UseElectricLiveQueryReturn sin un workaround.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

  • I've validated the bug against the latest version of DB packages

Describe the bug
UseLiveQueryReturn when used agains a ElectricCollection, doesn't match what actually a useLiveQuery returns for a query from an electric collection.

To Reproduce
Steps to reproduce the behavior:

  1. Create zod schema
import { z } from 'zod/v4';

export const actionSchema = z.object({
	id: z.string().uuid(),
	label: z.string(),
	// ... wathever...
});

export type Action = z.infer<typeof actionSchema>;
  1. Create a collection
const electricOpts = electricCollectionOptions({
	id: 'actions',
	schema: actionSchema,
	getKey: (item) => item.id,
	shapeOptions: {
		url: `${env.PUBLIC_URL}/shapes/actions`,
		subsetMethod: 'POST',
		columnMapper: snakeCamelMapper(),
	},
});
export const actionsCollection = createCollection(electricOpts);
  1. Query it using live query (in svelte in this case, and inside of a class)
#query: UseElectricLiveQueryReturn<Action> | null = $state(null);

// ...class stuff...

this.#query = useLiveQuery((q) =>
	q.from({ a: actionsCollection }).orderBy(({ a }) => a.createdAt, 'desc').limit(50),
);
  1. Expect a type error that the query is missing { readonly $synced: boolean; readonly $origin: VirtualOrigin; readonly $key: string | number; readonly $collectionId: string; } from the original type passed (Action in this case)

Expected behavior
Type should match correctly when inferring from UseElectricLiveQueryReturn<Action>

Workaround
I've created the follow type util to help me while this is an issue

import type { UseLiveQueryReturn, VirtualOrigin } from "@tanstack/svelte-db";

export type UseElectricLiveQueryReturn<T extends object> = UseLiveQueryReturn<T & {
  readonly $synced: boolean; readonly $origin: VirtualOrigin; readonly $key: string | number; readonly $collectionId: string;
	}>;
Lenguaje dominante
TypeScript
Estrellas
3.9k
Forks
268
Merge medio
1 d 3 h
PR fusionados (30 d)
148

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TanStack/db

Todos los issues de TanStack/db

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.