Type shorthand and syntax for [[Crystal]]. # Syntax ## Type Aliases ```crystal alias Int32OrNil = Int32? alias Int32OrNil = Int32 | ::Nil alias Int32Ptr = Int32* alias Int32Ptr = Pointer(Int32) alias Int32_8 = Int32[8] alias Int32_8 = StaticArray(Int32, 8) alias Int32StringTuple = {Int32, String} alias Int32StringTuple = Tuple(Int32, String) alias Int32StringNamedTuple = {x: Int32, y: String} alias Int32StringNamedTuple = NamedTuple(x: Int32, y: String) alias Int32ToString = Int32 -> String alias Int32ToString = Proc(Int32, String) alias ProcThatReturnsInt32 = -> Int32 alias Int32AndCharToString = Int32, Char -> String alias ComplexProc = (Int32 -> Int32) -> String ``` ## Type Restrictions ## Generics # References - https://crystal-lang.org/reference/1.10/syntax_and_semantics/type_grammar.html - https://crystal-lang.org/reference/1.10/syntax_and_semantics/type_restrictions.html - https://crystal-lang.org/reference/1.10/syntax_and_semantics/generics.html