This is more of a note for myself, as I keep forgetting the syntax. See also https://github.com/vimeo/psalm and
List of Arrays
Given an 2d array like :
[
[ 'name' => 'Pickle', 'age' => 4 ],
[ 'name' => 'David', 'age' => 42 ],
[ 'name' => 'Sooty', 'age' => 13 ],
]
PHP code that expects a data structure in that same shape can use an annotation like :
/**
* @psalm-param list<array{name: string, age: int}>
*/
Alternatively that can be used on a @psalm-return ….
Fixed List of Possible Things
If you have a fixed list of stringy things being returned you might have :
/**
* @psalm-return 'Foo'|'Bar'|'Baz'
*/