このレッスンでは @spec と @type の文法について学びます。最初の @spec はツールによって解析できるドキュメントを書くための文法をより完全にするものです。二番目の @type はコードをより読みやすく理解しやすいものにする手助けをしてくれます。 イントロダクション あなたが自分で書いた関数のインターフェイスを記述したいというのはそんなに珍しいことではないでしょう。もちろん @docアノテーションを使うこともできますが、他の開発者にとってそれはコンパイル時にチェックされない単なる情報に過ぎません。この目的のために、Elixirには @spec アノテーションがあり、コンパイラによってチェックされる関数の仕様を記述することができます。 しかしながらいくつかのケースにおいて仕様は相当に大きくなったり複雑になったりしがちです。複雑さを少なくしたいのなら独自の型の定義を導入したくなる
![仕様と型 · Elixir School](https://cdn-ak-scissors.b.st-hatena.com/image/square/96c1e7061b9e25be11e2b6a2232efa7a053dec81/height=288;version=1;width=512/https%3A%2F%2Felixirschool.com%2Fassets%2Fog_image-fad975b316dea5dc361d199bdfaa076006da49a0a3296f799aa7217b4c8b0cbe.jpg)