PhpStorm не распознает методы, которых нет в интерфейсе

<?php

interface iFoo {
public function print(): iFoo;
}

class Foo implements iFoo {
public function print(): iFoo {
return $this;
}

public function chain(): iFoo {
return $this;
}
}

$foo = new Foo();
$foo->print()
->chain() // Method 'chain' not found in iFoo
->print();

Как я могу заставить PhpStorm распознавать цепной метод, даже если его нет в контракте?

0

Решение

Это потому, что вы говорите PHPStorm, что у вас будет тип возврата iFoo, который не имеет класса chain() если ваш тип возврата Foo Я думаю, это сработает.

1

Другие решения

print() метод возвращает iFoo пример:

public function print(): iFoo {

iFoo не содержит chain() Метод, поэтому вы видите «метод не найден». Вы можете изменить тип возврата на Foo или добавить chain() метод для iFoo,

1