1

私は 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)

この配列が @return doc タグで定義されている配列に「似ている」と PHPStan に「信じさせる」にはどうすればよいですか?

私は何を試しましたか?

  • /**@var array<SomeConstants::*> $array**/
  • /**@phpstan-var array<SomeConstants::*> $array**/

どちらも問題なく動作しますが、私のコード レビュー担当者によると、配列に存在しないキーが存在すると PHPStan に強制するだけなので、これは「汚い」ソリューションです...

4

0 に答える 0