nominal VS zod

Compare nominal vs zod and see what are their differences.

nominal

πŸ”’ The new way to do types in typescript. (by scalarhq)

zod

TypeScript-first schema validation with static type inference (by colinhacks)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
nominal zod
3 288
259 30,347
0.0% -
0.9 9.1
about 1 year ago 7 days ago
TypeScript TypeScript
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

nominal

Posts with mentions or reviews of nominal. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-22.
  • Unlocking type-safety superpowers in TypeScript with nominal and refinement typ
    1 project | news.ycombinator.com | 3 Aug 2022
  • Unlocking type-safety superpowers in Typescript with nominal and refinement types
    7 projects | /r/typescript | 22 Jul 2022
    Hey OP here, Wanted to share something we recently discovered in typescript. This is a way to to create haskell style Newtype using the lesser known \`symbols\` ```ts type Minutes = number type Seconds = number const minutesToSeconds = (minutes: Minutes) => minutes * 60 const seconds: Seconds = 420 // uh-oh, we can use Minutes and Seconds interchangeably minutesToSeconds(seconds) ``` Nominal types solve this problem ```ts import { Nominal, nominal } from 'nominal-types'; type Minutes = Nominal<'Minutes', number>; type Seconds = Nominal<'Seconds', number>; const minutesToSeconds = (minutes: Minutes) => minutes * 60 // You can directly type cast or use nominal.make const seconds = nominal.make(420) const minutes = 1337 as Minutes // doesn't work, yay type safety minutesToSeconds(seconds) // does work! minutesToSeconds(minutes) ``` We have some lot cooler examples https://github.com/modfy/nominal#examples You can also read more about it here: https://zackoverflow.dev/writing/nominal-and-refinement-types-typescript

zod

Posts with mentions or reviews of zod. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-24.

What are some alternatives?

When comparing nominal and zod you can also consider the following projects:

type-fest - A collection of essential TypeScript types

class-validator - Decorator-based property validation for classes.

Elm - Compiler for Elm, a functional language for reliable webapps.

joi - The most powerful data validation library for JS [Moved to: https://github.com/sideway/joi]

typescript-runtime-type-benchmarks - πŸ“Š Benchmark Comparison of Packages with Runtime Validation and TypeScript Support

Yup - Dead simple Object schema validation

true-myth - A library for safer and smarter error- and "nothing"-handling in TypeScript.

typebox - Json Schema Type Builder with Static Type Resolution for TypeScript

io-ts - Runtime type system for IO decoding/encoding

ajv - The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927)

Superstruct - A simple and composable way to validate data in JavaScript (and TypeScript).