问题描述
我想对 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
。我该如何解决?
解决方法
在你的第一个代码中使用这样的东西告诉phpstorm你的界面在哪里:
.obj