我是 PHPStan 的新手,遇到了一个我无法理解的问题。
所以我有一个函数,它应该返回一个看起来像这样的数组:array<a|b|c|d..., mixed>
(a、b、c、d 都是类常量),但在函数中,数组看起来像这样:
/**
* @return array<SomeConstants::*, mixed>
*/
function doSomething(){
return [
'key1'=>'value1'
'key2'=>'value2'
...
];
}
我收到以下错误:
Method doSomething() should return array<a|b|c|d...,mixed> but returns array('key1'=>SomeObject|null,'key2'=>SomeObject2|null)
如何让 PHPStan “相信”这个数组“看起来像”@return doc 标记中定义的数组?
我尝试了什么?
/**@var array<SomeConstants::*> $array**/
/**@phpstan-var array<SomeConstants::*> $array**/
两者都工作正常,但根据我的代码审查员的说法,我们只是强迫 PHPStan 相信数组中不存在的键存在,所以这是一个“肮脏”的解决方案......