Talk

Typing eval and new Function: Type-level JavaScript Interpreter with TypeScript

In Russian
Presentation pdf

Many have heard that TypeScript’s type system is Turing complete. This means you can implement any computable algorithm using types alone. But type-level logic isn’t just a fun puzzle — it’s a great way to explore the capabilities and limitations of the type system, challenge your skills, and discover practical patterns you can apply in real-world code.

In this talk, we’ll attempt to strictly type an eval and the Function constructor — so that the result of the computation is inferred at compile time by the TypeScript compiler, before the program even runs. In other words, we’ll build a type-level interpreter for a subset of JavaScript!

Along the way, we’ll dive into what Turing completeness means in programming languages, peek under the hood of JavaScript interpreters, and explore how functional programming principles can be applied at the type level.

Speakers

Invited experts

Schedule