假设我有一个类Book
,它有一个名为$chapters
. 在我正在使用的实现中,此属性由一个名为 的通用辅助类表示,该类Collection
又包含一个Chapter
类数组。
例子:
class Book {
/** @var Collection */
public $chapters;
}
class Collection {
private $items;
public function getItems(): array {
return $this->items;
}
}
class Chapter {}
$chapters
是否可以对属性进行注释,Book
以便我的 IDE 知道它是一个Collection
对象,但是对该集合的方法的调用将返回一个实例getItems()
数组?Chapter
我可以在不创建子类Collection
和注释的情况下做到这一点吗?
编辑:我认为我的目标并不明确。我正在寻找一个在类之外的Book
类的类型提示,并就它的属性提供指导$items
——像这样(我确定这是无效的):
class Book {
/**
* @var Collection {
* @property Chapter[] $items
* }
*/
public $chapters;
}