复杂的类型完成