TS2589 errors with simple queries — how to fix without @ts-nocheck?
The Problem:
Even simple queries like this trigger TS2589:
export const getFAQSuggestions = query({
args: { workspaceId: v.id("workspaces") },
handler: async (ctx, args) => {
const allSuggestions = await ctx.db
.query("faqSuggestions")
.withIndex("by_workspace", (q) => q.eq("workspaceId", args.workspaceId))
.collect();
const pendingSuggestions = allSuggestions
.filter((s) => s.status === "pending")
.sort((a, b) => b._creationTime - a._creationTime)
.slice(0, 50);
return pendingSuggestions;
},
});
What I've Tried:
- Extracting validators to constants with v.object() — still errors
- Removing explicit type annotations on handler args — still errors
- Using inline object literals (not v.object()) — still errors
- Breaking query chains (collect first, then filter in JS) — still errors
- Splitting the file into smaller modules — still errors
