如何在特征中键入提示 `$this` 属性

How to type hint the `$this` property in a trait

我有一个特质正在 class 中使用。在那个特征中,我希望能够输入提示 class 它正在被使用。

这个特性很可能只被那个 class 使用。我只是出于组织目的将其关注点分开。

class Foo extends Model
{
    use Concerns/HasBar;
}
trait HasBar
{
    public function bar()
    {
        $this->... // Type hint $this to Foo
    }
}

您无法限制在特定 class.

中专门使用的特征

如果你想以这种方式实现,你可以创建一个子 class 而不是使用特征。

您可以在 HasBar::bar() 方法中使用 var tag 来键入提示 public class

的成员
trait HasBar
{
    public function bar()
    {
        /* @var Foo $this */
        $this->... // Type hint $this to Foo
    }
}