nominal
Powerful nominal types for your Typescript project (by Coder-Spirit)
sum-types
Safe, ergonomic, non-generic sum types in TypeScript. (by unsplash)
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
nominal | sum-types | |
---|---|---|
3 | 8 | |
66 | 42 | |
- | - | |
8.3 | 5.9 | |
18 days ago | 3 months ago | |
TypeScript | TypeScript | |
MIT License | 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.
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-02-06.
- Is there any known way to measure coverage of... types?
-
A humble proposal to improve Node <-> Deno compatibility
I'm working on a very simple library, Nominal. Nominal works both in Node and Deno, although I had to write some scripts to transform the code for Deno (mostly to add file extensions to the import statements).
-
@coderspirit/nominal - Crazily powerful nominal types on Typescript
The repo: https://github.com/Coder-Spirit/nominal
sum-types
Posts with mentions or reviews of sum-types.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-08-20.
-
Either type
I entirely agree about using symbols. sum-types does that.
-
Question about error handling in Typescript
With fp-ts and sum-types you'd handle this functionally like so:
-
type .kind checks vs. class instanceof checks
If you're looking to have discriminated unions like Rust, follow that section to roll your own or look for a library that's already implemented them. fp-ts has everything under the sun in a Haskell style, neverthrow has Rust-like Result and ResultAsync, and sum-types helps with the boilerplate of defining your own sum types.
-
Is there a more graceful way to create dependencies between object key settings?
I'd suggest sum-types. Instead of unsafe user-defined type guards you get safe pattern matching.
-
Best way to store persistent texts?
If you wanted to lean (more) into FP you could replace the Event type and buildPopup function with a sum type and pattern match respectively, as well as represent side effects like in popup with fp-ts' IO, make use of function composition, etc. The former in particular is great for readability:
-
Is there any known way to measure coverage of... types?
You can test types, at least in terms of asserting happy path types and whether a piece of code, runtime or purely type-level, should trigger a tsc type error. Here's an example using eslint-plugin-expect-type.
-
Has the unsoundness (will explain in the post) actually become a pitfall in practice?
Anywhere that overloads are needed will rely upon type assertions or the unsafety implicit in overloads, for example in fp-ts/function::pipe. It'll come up a lot with objects too when there isn't a preexisting primitive you can compose atop of, as in for example fp-ts-std/Record::pick. Something as generic as @unsplash/sum-types has assertions all over the place, though to be fair that's mostly again a case of struggles interacting with object types.
-
How to handle "mutable state" in a pure functional way
You might like @unsplash/sum-types also.
What are some alternatives?
When comparing nominal and sum-types you can also consider the following projects:
eslint-plugin-expect-type - ESLint plugin with ^? Twoslash, $ExpectError, and $ExpectType type assertions. 🧩
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
typegoose - Typegoose - Define Mongoose models using TypeScript classes.
immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity.
lambda-ioc - Super type safe dependency injection 💉 for TypeScript (inspired by Diddly)
tsd - Check TypeScript type definitions