Evite usar asserções de tipo nas ramificações de uma opção de tipo

Eu uso comutadores de tipo no Go, por exemplo o seguinte:

switch question.(type) {
case interfaces.ComputedQuestion:
    handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols)
case interfaces.InputQuestion:
    handleInputQuestion(question.(interfaces.InputQuestion), symbols)
}

Existe uma maneira de impedir que eu tenha que afirmar o tipo de pergunta dentro do caso antes que eu possa passá-lo para outra função?

questionAnswers(1)

yourAnswerToTheQuestion