A type resembles a part, but the terms are not interchangeable. In any computer language, a type is a modifier that limits the set of values appropriate for a variable. For example, INT is a numeric type that guarantees that a variable contains a whole number.
EGL primitive parts are also types. When you declare a variable based on an INT part, you set limits for that variable, that is, you are typing that variable as an INT. Other parts, like the Dictionary or the Record, are also types because they limit possible values. The DataItem is an exception. A DataItem has the same type as the primitive part it is based on.
EGL is strict about its types. For example, when you create a variable based on a Dictionary part, there are rules for how you can construct an expression using that variable. You cannot equate a Dictionary type variable to an INT or any other primitive type variable.