An Apex-based custom Lightning type uses an Apex class to define its schema. Instead of manually creating fields, you map the type directly to your Apex class structure. This method is ideal when you have a complex data structure already defined in your Apex class code.