Чтобы определить, реализует ли данный тип интерфейс с использованием пакета отражения, вам необходимо передать отражение.Type в Reflection.Type.Implements (). Как получить один из этих типов?
В качестве примера, попытка получить тип неинициализированного типа os.Error (interface) не работает (возникает паника, когда вы вызываете Kind () на нем)
var err os.Error
fmt.Printf("%#v\n", reflect.TypeOf(err).Kind())