Haxe provides the ability to target JavaScript. It does so by transpiling Haxe to JavaScript. The current implementation targets ECMAScript 5. But it is possible to target lower versions using -D js-es=<value>
.
When choosing the JavaScript target, only the used Haxe code of the project (and used parts of the standard library) are transpiled to JavaScript. This results in optimal filesize which is also readable. Source maps are available and there are several ways to get debug information. The standard library aims to have same functionality across all targets.
You may want to compile Haxe to JavaScript in the following scenarios:
Client-side JavaScript Interacting with DOM elements. Haxe provides up-to-date typed interfaces to interact with the Document Object Model, allowing creation and update of DOM elements.
Haxe can be used together with existing third-party libraries and frameworks, such as jQuery, React or Vue. To access third-party frameworks with a strongly-typed API, there are extern libraries available on Haxelib. Alternatively, it is possible to create own externs (see Using external JavaScript libraries) or use the dynamic type to access any framework, see Accessing Target-specific Syntax.
Creating graphics using Canvas and WebGL Use Haxe to create graphical elements on a web page using WebGL.
Libraries like OpenFL, Heaps and Kha make use of WebGL as one of their backends.
Creating Haxe code that targets server-side JavaScript Working with server-side technology. Haxe can be used to create server-side JavaScript like Node.js.
12.2.1: Getting started with Haxe/JavaScript
12.2.2: ECMAScript 6 class generation
12.2.3: Using external JavaScript libraries
12.2.4: JavaScript target Metadata
12.2.5: Exposing Haxe classes for JavaScript
12.2.6: Loading extern classes using "require" function