Zod là lựa chọn tốt nhất cho Express + TS: schema-first, type-safe, safeParse trả structured errors.
ts
const schema = z.object({ email: z.string().email(), age: z.number().min(18) });
app.post('/users', (req, res) => {
const result = schema.safeParse(req.body);
if (!result.success) return res.status(400).json(result.error);
});Alternatives: Joi, Yup, class-validator.
Validate ở layer đầu tiên — trước bất kỳ business logic nào.