2
使用Behat子上下文類我需要從主要上下文中調用一個方法,例如, $this->getMainContext()->fooBar()
。 PhpStorm相當合理地警告說,fooBar()
不存在,因爲它期望getMainContext()
返回ExtendedContextInterface
,而不是我具體的FeatureContext
。PhpStorm:繼承方法返回類型的註解?
有沒有辦法註釋我的子類,告訴PhpStorm getMainContext()
實際返回我的具體類?
一個解決方案是覆蓋getMainContext()
只是爲了讓我有一個方法來添加我自己的PHPDoc,因此指定了不同的返回類型,但添加一個方法只是爲了在IDE中獲得更好的代碼感是可怕的。
順便說一句,我知道這是有點hacky,理論上我的子上下文不應取決於我的主要背景具體具體實施;實際上,雖然Behat並沒有那麼實際。
在有人需要它這裏的情況是規範http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags。 method.pkg.html – Alrik
我有幾乎相同的問題,除了不是一個方法,而是一個類變量,但我不認爲有一個解決方案。我的類(本身派生自一個基類)爲基類成員分配一個類型,它是基類中定義類型的子類,我不知道如何告訴IDE。 – AndyClaw
@AndyClaw肯定你不需要?如果你正在分配的對象擴展了基類指定的類型,那麼它的公共API應該與該基類型相同,否? –