如何让 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 键类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何让PhpStorm同时打开多个项目?(多项目并存的问题)

php的安装和破解

如何优雅的使用 phpStorm 开发工具

让 WebStorm / PHPStorm 支持 Vue

python SQLAlchemy外键类装饰器

PhpStorm 无法正确理解自定义标签