A type alias gives an existing Go type another name without creating a distinct type. Use one when a name clarifies how a value is being used but values should remain interchangeable with the original type. For example, byte is an alias for uint8, and rune is an alias for int32. section 3.1 section 5.1.1
Alias or distinct measurement type?
For a recipe measurement, `type Amount = float32` makes Amount another name for float32: an Amount and a float32 can be used interchangeably. By contrast, `type Magnitude float32` defines a distinct type. Converting a float32 to Magnitude must be explicit, and Magnitude can have its own methods. Choose the alias when a second name is enough; choose the defined type when the compiler should distinguish measurement values from ordinary numbers. section 5.1.1 section 5.1





