A declaration in a program that specifies the characteristics of a new data type, usually by combining more primitive existing data types.