【问题标题】: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。我该如何解决?

【问题讨论】:

    标签: php data-structures phpstorm type-hinting


    【解决方案1】:

    在你的第一个代码中使用这样的东西来告诉 phpstorm 你的界面在哪里:

    use nampespace\MyMap;
    

    【讨论】:

    • 我实际上是这样做的,只是为了简化示例而没有提及它。我刚刚也注意到 laravel 容器类型提示也坏了:(。-也许这是 phpstorm 的错误...
    猜你喜欢
    • 2011-12-15
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2020-01-03
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多