Как представить непустой массив?
Я пробовал использовать пересечение типов
/**
* @param array&nonEmpty $users
*/
function sayHello($users): void {
echo 'Hello, ' . $users[0];
}
но жалуется:
PHPDoc tag @param for parameter $users contains unresolvable type.
Если я разделю аннотацию до nonEmpty
, ошибка изменится на
Parameter $users of function sayHello() has invalid typehint type nonEmpty
Я вижу класс, ответственный за nonEmpty
введите в дереве исходных текстов, а также несколько раз упоминалось в тестах и проблемах, но я просто не мог заставить его работать.
1 ответ
Решение
Просто чтобы дать ответ тем, кто приходит из поисковых систем:
PHPStan теперь имеет
non-empty-array
тип, который вы можете использовать. Вот пример.