A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance.
This project is a workspace consisting of a few crates:
Crate | Lines Of Code |
Description |
---|---|---|
parser | Contains AST definitions, logic for parsing and serializing, and visiting |
Read some more detailed posts
This is an experimental compiler. If you are looking for a stable compiler, Ezno is not the right choice at the moment.
Ezno is a type checker based on TypeScript type annotations.
- Declare interfaces and other type definitions
- Usage checking: property access, function parameters etc
- Effects that track mutations across functions
- Parameter constraint inference
- Powerful dependent type system
- The
any
type has no properties on it - Type annotations on variables are the reassignment constraint, not it's current value. Current value is inferred and is mutable
- ...
ultimately the differences shouldn't break existing code and in any case pick up more errors than TSC
Check out issues. Comment on discussions.