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

PHPStan无法识别泛型类型声明问题排查

问题解决办法

你遇到的问题核心是PHPStan对泛型类的参数校验优先看方法签名里的类型声明,而非文档块中的@param-out注释。

虽然你在@param-out里指定了TypedArray<int, VersionData>,但方法签名里的$versionsData参数只写了TypedArray,没有附带泛型类型参数<int, VersionData>,这就导致PHPStan认为这个泛型类的类型参数未被指定。

修复步骤

修改方法的参数类型声明,把泛型参数直接写在签名里:

public function processAllVersions(UploadedFileInterface $file, TypedArray<int, VersionData> &$versionsData, string &$error): bool

这样PHPStan就能直接识别到TypedArray的泛型类型,同时你可以保留@param-out的注释来明确这是输出参数的类型说明,两者并不冲突。

另外要注意:如果VersionData不在当前命名空间,需要确保已经通过use语句引入,或者在泛型声明里写完整的命名空间路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:19:53