golang 中func作为参数类型,如何使实参设置不同的返回类型

假设定义了参数类型为

type Callback func(*Context) interface{}
func action(c Callback){}

func main(){
    action(User.Add)
}

其中Add方法为

func (u *User) Add(c *Context) UserVo {
    res := &UserVo {}
    return *res
}

我想在Add方法清晰定义方法的返回值类型
但是我实际的返回值没有降级成为interface{},编辑器会报错

Cannot use 'User.Add' (type func(c *Context) UserVo ) as type Callback 

当Add方法声明返回值类型为interface{};或不返回,且Callback也不定义返回的情况,运行是正常的
请问有没有什么办法既能清晰定义具体方法的返回值类型,又能使用抽象接收进行后续处理