Installing Hack, running your first program, and introducing the tools.
Basic syntax, namespaces, and the autoloader.
Expressions, operators, associativity, and precedence.
Immutable collections, mutable collections, and APIs.
Specifying capabilities and permissions for functions.
Language support for organizing code.
Combine modules into separate builds and deployments.
Safe, composable HTML templating.
HH_FIXME best practices and error codes.
How to contribute to this website.
Simple statements, blocks, and loops.
Asynchronous functions, await, and the concurrent keyword.
Specialized feature for performantly controlling object mutability
Classes, Interfaces, Traits
Named functions, anonymous functions and parameters.
Classes provide a way to group functionality and state together.
Mechanisms for code reuse and code constraint within classes.
Attaching metadata to Hack programs, built-in attributes and defining your own.
Types and Generics
The type checker.
Built-in types known to the type checker.
Generic types, where constraints, and variance.
Generics with type information accessible at runtime.
Enable features in the experimental phase.
Typechecker support for domain specific languages.
Experimental feature for controlling use of memoization and the Implicit Context
Full reference docs for all functions, classes, interfaces, and traits in the Hack language.
Full reference docs for all functions, classes, interfaces, and traits in the Hack Standard Library.