Spec
defmodule App1.Math do
@spec sum(integer(), integer()) :: integer()
def sum(a, b) do
a + b
end
end
Custom Type
defmodule App1.User do
@type t() :: %__MODULE__{id: integer(), name: String.t()}
defstruct name: "", id: 0
end
defmodule App1.Greeter do
alias App1.User
@spec greet(User.t()) :: String.t()
def greet(%User{name: name}) do
"Hello, #{name}"
end
end