Um type assertion fornece acesso ao valor concreto subjacente de um valor de interface.
Quando a instância de uma struct é convertida para uma interface, essa instância continua existindo, porém agora só temos acesso aos métodos que a interface permite.
Observe, por exemplo, que quando convertemos uma instância do tipo Pessoa (veja o exemplo anterios), perdemos acesso aos campos da struct e aos métodos não definidos pela interface:
carlito := Pessoa{"Carlito da Silva"}
var falador Falador = carlito
// Não temos mais acesso
fmt.Println(carlito.Nome)
fmt.Println(carlito.Gritar("Bingo"))
Apesar de não termos mais acesso a estes valores, podemos recuperá-los ao convertemos a interface para o seu tipo original. Isso porque, debaixo dos panos, Go deixa "guardada" a sua instância original.
carlitoRecuperado := falador.(Pessoa)
// Agora temos acesso
fmt.Println(carlitoRecuperado.Nome)
fmt.Println(carlitoRecuperado.Gritar("Bingo"))