symfony 如何解决Pslam混合返回类型冲突

i7uq4tfw  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(124)
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);
    }
6yt4nkrj

6yt4nkrj1#

Psalm想告诉你的是,它不能检查$this->roles是否只有字符串元素。你需要在函数内部检查,或者在该属性上添加一些phpdoc来说明它只能包含字符串

相关问题