You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PhpStorm中如何复用ArrayShape类常量为数组添加类型提示?

解决方案

目前PhpStorm原生不支持直接在@var注解中将ArrayShape常量作为类型引用,你可以通过以下两种无重复定义的方式实现结构复用:

方案1:原生无插件(推荐)

你已经在CheckoutSessionLineItemMetadata::toArray()方法上定义了对应的ArrayShape注解,可以直接引用该方法的返回值作为变量类型,PhpStorm原生支持该语法:

foreach ($data->display_items as $line_item) {
    // 注意结尾的括号不可省略,代表取该方法的返回值类型
    /** @var $metadata \my\namespace\Api\CheckoutSessionLineItemMetadata::toArray() */
    $metadata = $line_item->metadata;
    // 此处可直接获得order_item_id、order_id、product_variation_id的键提示
}

如果已经在当前文件引入了CheckoutSessionLineItemMetadata类的命名空间,可以省略前缀直接写CheckoutSessionLineItemMetadata::toArray()。

方案2:配合已安装的deep-assoc-completion插件

该插件支持直接引用ArrayShape常量作为数组结构定义,语法如下:

foreach ($data->display_items as $line_item) {
    /** @var $metadata array<shape=\my\namespace\Api\CheckoutSessionLineItemMetadata::ARRAY_SHAPE> */
    $metadata = $line_item->metadata;
    // 插件会解析常量内的数组结构,给出对应键的提示
}

内容的提问来源于stack exchange,提问作者Matthew Weiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:15:05