PhpStorm 2018.3 EAP 183.2635.12 | PhpStorm Blogによれば、PhpStorm 2018.3(EAP)でPSR-5:PHPDocのジェネリクス構文や交差型がサポートされたらしい。
ジェネリクス構文
PhpStorm 2018.3からPHPDocにてarray<Type>
のような型宣言が認識されるようになった。今までは<>
の中身が型として認識されなかった。
ただし、コード補完やインスペクションはジェネリクス構文に対応していないため、現状でコード補完やインスペクションを作動させるにはType[]
のような書き方をするか、array<TypeB>|TypeB[]
のような併記をしないとならない。
交差型(intersection types)
これまでのPhpStormは、PHPDoc内の共用体型(union types)を認識していたが、2018.3からは交差型(intersection types)も認識してくれる。
今まで、本当は交差型なのにPhpStormに認識されなかったために共用体型の表記で対処してきた部分は、交差型として書くことができる。
こちらもインスペクションには未対応なので、交差型を満たさない型を渡しても警告が出ない。インスペクションでは共用体型として認識される。
所感
- PhanやPsalm、PHPStanといった解析ツールを使っている人にとっては喜ばしいアップデートだったかも。
- 今日現在DraftのPSR-19ではジェネリクス型パラメータ宣言のタグ
@template
が盛り込まれておらず、ユーザがジェネリクス型のコードを作れないので、PhpStormがジェネリクスにどこまで対応してくれるか不安が残る。 - コード補完やインスペクションは今後のアップデートに期待したい。