PhpStorm不是typehinting类方法返回特性的类型

时间:2018-03-07 10:18:17

标签: php phpstorm php-7 type-hinting phpstorm-2017.2

假设我有一组课程

class A {

    use Dummy;

    function getB() : B { ... }

}

class B {

    function foo() { ... }

}



trait Dummy {

    function works() {
        if ($this instanceof A)
            $this -> getB() -> foo();   // Typehinting works
    }

    function doesntWork() {
        $this -> getB() -> foo(); // Method foo not found in...
    }

}

如何让PhpStorm按照方法doesntWork中的假设进行输入工作?我真的很生气,因为很多我的工作依赖于在这样的特征中使用主类方法,而且我在PhpStorm中得到了许多令人分心的黄色......

2 个答案:

答案 0 :(得分:3)

你现在做不了多少 - 这是一个IDE问题。

https://youtrack.jetbrains.com/issue/WI-35952 - 观看此机票(星级/投票/评论)以获得有关任何进展的通知。

相关:https://youtrack.jetbrains.com/issue/WI-39004

答案 1 :(得分:0)

事实证明,这是一种解决方法。在那种情况下,

/**
* @method \Namespace\Name\B getB
*/
trait Dummy { ... }

有点难看,但有效