//A - Types first
type AThing = { thing: string };
const A: AThing = { thing: "A" };
const ASchema = z.infer(AThing);
const AisValid = !!ASchema.parse(A);
//B - Zod first
const BSchema = z.object({ thing: z.string() });
type BThing = z.infer<typeof B>
const B: BThing = { thing: "B" };
const BisValid = !!BSchema.parse(B)
//A - Types first
type AThing = { thing: string };
const A: AThing = { thing: "A" };
const ASchema = z.infer(AThing);
const AisValid = !!ASchema.parse(A);
//B - Zod first
const BSchema = z.object({ thing: z.string() });
type BThing = z.infer<typeof B>
const B: BThing = { thing: "B" };
const BisValid = !!BSchema.parse(B)