tsd
sum-types
tsd | sum-types | |
---|---|---|
9 | 8 | |
2,321 | 42 | |
1.4% | - | |
7.1 | 5.9 | |
about 2 months ago | 3 months ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
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.
tsd
-
How I unit tested types
Nice. Have you checked out tsd? Would you consider your library to be a viable alternative to tsd?
-
How to test TypeScript type definitions with Jest
The library we're going to use to execute these static type tests is one that I made called jest-tsd. It's a wrapper around tsd to make it really easy to use with Jest.
-
Typing is good but testing is better!?
But even with a very strict TS/ESLint configuration, you can't avoid a typing error. I looked for libraries to test types and I was very surprised to see that it is not a very common practice and there is not much choice. The most popular one seems to be tsd, unfortunately like all the other libs I found, it does not integrate with existing tools.
-
tsd VS vite-plugin-vitest-typescript-assert - a user suggested alternative
2 projects | 18 Jul 2022
-
Testing TS Type Inference
How is this different than tsd ? https://github.com/SamVerschueren/tsd
-
How to generate declaration for only public members of a package?
Yep. Similarly I'm surprised there's no built in way to test typescript definitions, so I end up using tsd.
-
Is there any known way to measure coverage of... types?
``` import {expectType} from 'tsd';import concat from '.';expectType(concat('foo', 'bar'));expectType(concat(1, 2)); ``` https://github.com/SamVerschueren/tsd
- How to correctly test Typescript where type errors *should* arise
- Looking to improve typescript skills (specifically around type annotations)
sum-types
-
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?
vite-plugin-vitest-typescript-assert - 🔥 TypeScript type assertion plugin for vitest
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
eslint-plugin-expect-type - ESLint plugin with ^? Twoslash, $ExpectError, and $ExpectType type assertions. 🧩
immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity.
typings - *DEPRECATED* The TypeScript Definition Manager
nominal - Powerful nominal types for your Typescript project
rubygems - Library packaging and distribution for Ruby.
mori - ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript
DefinitelyTyped - The repository for high quality TypeScript type definitions.
just-types - A collection of handy Typescript types.
Visual Studio Code - Visual Studio Code