Shapes
Note
This is a point-in-time snapshot of the API documentation from January 2026. Going forward, we will not be maintaining a public copy of these references, and recommend users to refer to the built-in signature helpers available in the Hack LSP instead for complete and up-to-date information.
Interface Synopsis
namespace HH;
abstract final class Shapes {...}
Public Methods
::at(shape() $shape, arraykey $index)
Returns the value of the field $index of $shape, throws if the field is missing::idx(shape(...) $shape, arraykey $index, mixed $default = NULL)
UseShapes::idxto retrieve a field value in a shape, when the key may or may not exist::keyExists(shape() $shape, arraykey $index): bool
Check if a field in shape exists::removeKey<T as shape()>(inout darray $shape, arraykey $index): void
Removes the $index field from the $shape (passed in as an inout argument)::toArray(shape() $shape): darray<arraykey, mixed>::toDict(shape() $shape): dict<arraykey, mixed>