0

我有以下代码:

namespace Some\Space\Utility;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;

/**
 * @psalm-template T
 */
class SomeAdapter
{
    /**
     * Some method
     *
     * @psalm-param iterable<int, T> $data
     *
     * @psalm-return Collection<int, T>
     */
    public static function doSomething($data): Collection
    {
        if (is_array($data)) {
            $data = new ArrayCollection($data);
        }

        return $data;
    }
}

可能我错过了一些东西,但我收到以下错误@psalm-param

psalm: UndefinedDocblockClass: Docblock定义的类或接口Some\Space\Utility\T不存在

4

1 回答 1

0

问题是该函数是静态的。这是正确的解决方案:

    /**
     * Some method
     *
     * @psalm-template T
     * @psalm-param iterable<int, T> $data
     *
     * @psalm-return Collection<int, T>
     */

模板必须在方法上定义。

于 2020-10-23T11:31:19.243 回答