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. The entire Array API is ported except Array.fromAsync, which is deliberately omitted (it is built on promises and async iteration, which have no PHP equivalent). 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