我已经为有序列表定义了一个接口。类docblock看起来像这样:
/**
* Interface ListOrderedInterface
* @template ListOrderedElement
*/
在这个接口的方法docblocks中,ListOrderedElement用于确保添加到列表中的内容的类型是一致的。PHPStan在ListOrderedInterface.php上干净地运行。到目前为止一切都很好。
接下来,我为一个工厂定义了一个接口,这个接口生成一个有序列表。
/**
* Class ListFactoryInterface
*/
interface ListOrderedFactoryInterface
{
/**
* makeList
* @return ListOrderedInterface
*/
public function makeList(): ListOrderedInterface;
}
phpstan正在抱怨并显示警告消息“phpstan::具有泛型接口ListOrderedInterface得方法makeList返回类型未指定其类型”.“我不知道如何指定该接口得类型.
谢谢你帮忙。
1条答案
按热度按时间6uxekuva1#
您需要在makeList phpdoc的@return部分中为ListOrderedInterface提供一个专门化。
如果您还需要将其泛型化,则还需要在工厂中添加@模板,并从makeList返回泛型类型。
在实现FactoryInterface的类中,添加@implements phpdoc。
您可以在官方文档中找到更多示例:https://phpstan.org/blog/generics-by-examples