Has the unsoundness (will explain in the post) actually become a pitfall in practice?

This page summarizes the projects mentioned and recommended in the original post on /r/typescript

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • sum-types

    Safe, ergonomic, non-generic sum types in TypeScript.

  • 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.

  • TypeScript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • I think this feature might finally be coming in the near future! It's mentioned in the 4.6 iteration plan (https://github.com/microsoft/TypeScript/issues/46858) and a few design meeting notes!

  • 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 logo
  • Visual Studio Code

    Visual Studio Code

  • As for the strange behavior around type variance, there are some good and some interesting reasons strictFunctionTypes only applies in limited cases. The original release blog post explains these reasons quite well, using relatively simple terms. To oversimplify, TS can't perfectly represent certain JS cases without significantly sacrificing performance and usability or making massive breaking changes. Interestingly, even strictFunctionTypes, which only affects a small subset of functions, caused 800 compile errors when VSCode enabled it.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts