这是delphi的help里面的解释,慢慢看[]
When you declare a type that is identical to an existing type,
the compiler treats the new type identifier as an alias for the old one.
Thus, given the declarations
type TValue = Real;
var
X: Real;
Y: TValue;
X and Y are of the same type; at runtime, there is no way to distinguish TValue from Real. This is usually of little consequence, but if your purpose in defining a new type is to utilize runtime type information梖or example, to associate a property editor with properties of a particular type梩he distinction between 揹ifferent name?and 揹ifferent type?becomes important. In this case, use the syntax
type newTypeName = type type
For example,
type TValue = type Real;
forces the compiler to create a new, distinct type called TValue.