Reifiable types for TypeScript
Flect is a library for describing TypeScript types using JavaScript objects. These types can be reified into TypeScript types, as well as being used for tasks like validation and dependency injection.
Flect was inspired by libraries like reason-guard, Zod, and zoddi. There is nothing wrong with these libraries, but the aim of Flect is to better separate type expression from type usage to allow broader extensibility.