Auto-Annotator Demo: Type Check Un-Annotated JavaScript

Click on 'Annotate' below.
Please edit this JavaScript or paste your own.

What is going on here?

The types of JavaScript function parameters are automatically inferred using our static fuzzing technology.

WTF is "Static Fuzzing"?

We need to maintain stealth on the details but we will share more in the future - please stay tuned.

How is this useful?

Once we infer a parameter's type, we can inject code to throw an exception if the function is called with the wrong type. This code is called a 'type guard' - to see these, please click on 'Annotate' and then on 'Select...'.

An auto-annotator could be also be helpful when migrating to TypeScript from JavaScript or it could offer type safety without migrating at all. It could also auto-generate JSDoc comments.

Please let us know if you have any other ideas.

What does this do that TypeScript does not?

TypeScript infers the types of locals, globals and return values but does not infer the types of function input parameters.

How accurate is your type inference?

An accuracy study is available - please email to request it.

Does this work on React/Preact/ES6/Node JS/Vue.js/etc?

It is designed to work on any JavaScript.

Why do I get the error: 'Oops - something went wrong'

This is usually caused by a JavaScript syntax error. Check the code in the left pane.

What are the limitations?

We are still working on inferring the types of objects, functions in classes, ES6 support and a few interesting edge cases (bugs). Please consider it a work in progress.

How do I contact Fuzz Stati0n?

Please contact with any feedback, bugs or questions.

Visit us on Twitter or GitHub to stay tuned.