13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PhpStorm 2018.3(EAP)でPSR-5:PHPDocのジェネリクス構文や交差型がサポートされた

Posted at

PhpStorm 2018.3 EAP 183.2635.12 | PhpStorm Blogによれば、PhpStorm 2018.3(EAP)でPSR-5:PHPDocのジェネリクス構文や交差型がサポートされたらしい。

ジェネリクス構文

PhpStorm 2018.3からPHPDocにてarray<Type>のような型宣言が認識されるようになった。今までは<>の中身が型として認識されなかった。

generics-1.gif

ただし、コード補完やインスペクションはジェネリクス構文に対応していないため、現状でコード補完やインスペクションを作動させるにはType[]のような書き方をするか、array<TypeB>|TypeB[]のような併記をしないとならない。

generics-2.gif

交差型(intersection types)

これまでのPhpStormは、PHPDoc内の共用体型(union types)を認識していたが、2018.3からは交差型(intersection types)も認識してくれる。

2018-09-26 16-28-38.2018-09-26 16_29_55.gif

今まで、本当は交差型なのにPhpStormに認識されなかったために共用体型の表記で対処してきた部分は、交差型として書くことができる。

こちらもインスペクションには未対応なので、交差型を満たさない型を渡しても警告が出ない。インスペクションでは共用体型として認識される。

スクリーンショット 2018-09-26 16.40.07.png

所感

  • PhanやPsalm、PHPStanといった解析ツールを使っている人にとっては喜ばしいアップデートだったかも。
  • 今日現在DraftのPSR-19ではジェネリクス型パラメータ宣言のタグ@templateが盛り込まれておらず、ユーザがジェネリクス型のコードを作れないので、PhpStormがジェネリクスにどこまで対応してくれるか不安が残る。
  • コード補完やインスペクションは今後のアップデートに期待したい。
13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?