Aqui está o código:
<?php declare(strict_types=1);
/**
* @param array{key?: string} $options
*/
function hello($options)
{
var_dump($options);
}
hello([
'WRONG_KEY' => '...',
]);
Eu esperaria phpstan analyze
falhar neste código, reclamando sobre algo inesperado WRONG_KEY
no array passado.
Por que não está falhando? Estou esquecendo de alguma configuração ou é assim que o PHPStan deveria funcionar?
Isto é sobre formatos de matriz selados e não selados.
Formas de array não seladas permitem chaves extras. Atualmente, as formas de array do PHPStan atuam principalmente como não seladas, mas às vezes são inconsistentes.
Há um problema aberto sobre isso: https://github.com/phpstan/phpstan/issues/8438 (um dos problemas mais votados, então será resolvido mais cedo ou mais tarde)