ERROR: MixedReturnTypeCoercion - src/Entity/User.php:98:16 - The type 'non-empty-array<array-key, "ROLE_USER"|mixed>' is more general than the declared return type 'array<array-key, string>' for App\Entity\User::getRoles (see https://psalm.dev/197)
return array_unique($roles);
我在symfony项目中运行psalm并得到上面的错误,下面是方法定义,但我不知道为了修复错误要调整什么。
/**
* @see UserInterface
* @psalm-return array<array-key, string>
* @return string[]
*/
public function getRoles(): array
{
$roles = $this->roles;
// guarantee every user at least has ROLE_USER
$roles[] = 'ROLE_USER';
return array_unique($roles);
}
1条答案
按热度按时间6yt4nkrj1#
Psalm想告诉你的是,它不能检查
$this->roles
是否只有字符串元素。你需要在函数内部检查,或者在该属性上添加一些phpdoc来说明它只能包含字符串