У вас изначально не правильно сделано.
newUser это конструктор и должен возвращать объект структуры User.
И уже там где вам нужен именно `Jump` метод описывайте тип переменной которая является имплементацией интерфейса `Jumping`.
Однако проверить что переменная является экземпляром нужной структуры так же можно.
package main
type Jumping interface {
Jump()
}
type User struct {
Name string
Surname string
}
func (user *User) Swim() { }
func (user *User) Jump() { }
func NewUser(name, surname string) *User {
return &User{ name, surname }
}
func main() {
u := NewUser("Ivan", "Ivanov")
FooBar(u)
}
func FooBar(j Jumping) {
j.Jump()
if u, ok := j.(*User); ok {
u.Swim()
}
}