TwigFilter 可调用参数的 Psalm 错误

Psalm error for TwigFilter callable parameter

我从 psalm 得到这个关于 twig 扩展的错误:

ERROR: InvalidArgument - src/Twig/CartExtension.php:44:17 - Argument 2 of Twig\TwigFilter::__construct expects callable|null, array{App\Twig\CartExtension&static, string(getOfferDate)} provided

有问题的代码是:

public function getFilters(): array
{
    return [
        new TwigFilter(
            'get_offer_date',
            [$this, 'getOfferDate']
        ),
    ];
}

TwigFilter 签名是

/**
 * @param callable|null $callable A callable implementing the filter. If null, you need to overwrite the "node_class" option to customize compilation.
 */
public function __construct(string $name, $callable = null, array $options = [])

...

twig 文档推荐这种格式

[$this, 'getOfferDate']

对于可调用对象:https://symfony.com/doc/current/templating/twig_extension.html

我如何修复这个 psalm 错误或告诉 psalm 接受它?

方法 getOfferDate() 应该在 class 中创建。在您的情况下,在 class CartExtension.

内部