如何让 PhpStorm 理解 Ds\Map 键类型?

问题描述

我想对 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...