在Elixir中的函数规范中指定类型

在Elixir中的函数规范中指定类型,elixir,specifications,Elixir,Specifications,如果可以是任何可以转换为字符串的类型,如何在函数规范中指定类型 @spec push(queue :: %MyQueue{}, data :: ??) :: {} 如果所说的“可以转换为字符串”,您是指to_string/1函数,该函数适用于实施了string.Chars协议的任何类型,您可以使用类型string.Chars.t: @spec push(queue :: %MyQueue{}, data :: String.Chars.t) :: {} IO模块中的许多函数在其规范中使用此类

如果可以是任何可以转换为字符串的类型,如何在函数规范中指定类型

@spec push(queue :: %MyQueue{}, data :: ??) :: {}
如果所说的“可以转换为字符串”,您是指
to_string/1
函数,该函数适用于实施了
string.Chars
协议的任何类型,您可以使用类型
string.Chars.t

@spec push(queue :: %MyQueue{}, data :: String.Chars.t) :: {}
IO
模块中的许多函数在其规范中使用此类型,例如