Structs

  • Similar to type reference but no unions or intersections AND includes generic constraints. Used for declaring classes, interfaces and functions

Enums

  • Represents a generic parameter. Can have default or constraint to extend a type or a key of a type