A PHP implementation of JavaScript's Array and Map APIs with TypeScript-style generics and Test262-inspired coverage.
- php: ^8.3
Through Composer as chubbyphp/chubbyphp-typescript.
composer require chubbyphp/chubbyphp-typescript "^1.0"A PHP implementation of the JavaScript Array class, including sparse-array semantics and chainable methods. See the full documentation for API reference and examples.
use Chubbyphp\Typescript\Arr;
$arr = new Arr(1, 2, 3, 4, 5);
$arr->shift();
$arr->pop();
$arr = $arr->map(static fn (int $v): int => $v * 2);
$arr->push(10);
// iterator_to_array($arr->values()) => [4, 6, 8, 10]
$arr = Arr::from([1, 2, 3, 4, 5], static fn (int $v): int => $v * 2);
// iterator_to_array($arr->values()) => [2, 4, 6, 8, 10]A PHP implementation of the JavaScript Map class with SameValueZero key equality and insertion-order iteration. See the full documentation for API reference and examples.
use Chubbyphp\Typescript\Map;
$map = new Map([
['a', 1],
['b', 2],
]);
$map->set('c', 3);
$map->delete('b');
// $map->toArray() => [['a', 1], ['c', 3]]
$map->forEach(static fn (int $v, string $k) => print($k.':'.$v));2026 Dominik Zogg