chubbyphp / chubbyphp-typescript
PHP port of JavaScript's Array and Map APIs with TypeScript-style generics
Requires
- php: ^8.3
Requires (Dev)
- chubbyphp/chubbyphp-dev-helper: dev-master
- infection/infection: ^0.34.0
- php-coveralls/php-coveralls: ^2.9.1
- phpstan/extension-installer: ^1.4.3
- phpstan/phpstan: ^2.2.5
- phpunit/phpunit: ^12.5.30
This package is auto-updated.
Last update: 2026-07-05 18:49:53 UTC
README
Description
A PHP implementation of JavaScript's Array and Map APIs with TypeScript-style generics and Test262-inspired coverage.
Requirements
- php: ^8.3
Installation
Through Composer as chubbyphp/chubbyphp-typescript.
composer require chubbyphp/chubbyphp-typescript "^1.0"
Usage
Arr (Array)
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]
Map
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));
Copyright
2026 Dominik Zogg