如何让 PhpStorm 理解 Ds\Map 键类型?
Posted
技术标签:
【中文标题】如何让 PhpStorm 理解 Ds\\Map 键类型?【英文标题】:How to make PhpStorm understand Ds\Map key type?如何让 PhpStorm 理解 Ds\Map 键类型? 【发布时间】:2021-04-28 11:07:38 【问题描述】:我想对 Ds\Map
变量进行类型检查。为了做到这一点,我声明了一个虚拟接口并在那里声明了类型:
/**
* @method OtherType offsetGet(MyType $offset)
* @method void offsetSet(MyType $offset, OtherType $value)
*/
interface MyMap extends ArrayAccess, Iterator
但是当我使用它时:
/** @var Map|MyMap $map */
$map = new Ds\Map();
$map[$offset] = $value;
- phpStorm 无法识别它并显示警告:Illegal array key type MyType
。我该如何解决?
【问题讨论】:
【参考方案1】:在你的第一个代码中使用这样的东西来告诉 phpstorm 你的界面在哪里:
use nampespace\MyMap;
【讨论】:
我实际上是这样做的,只是为了简化示例而没有提及它。我刚刚也注意到 laravel 容器类型提示也坏了:(。-也许这是 phpstorm 的错误...以上是关于如何让 PhpStorm 理解 Ds\Map 键类型?的主要内容,如果未能解决你的问题,请参考以下文章