The setWidget of Typeahead specifically checks for a widget of type TextBoxBase so i guess there is no alternative!! Sad but Reality!
public void setWidget(Widget w) {
if (!(w instanceof TextBoxBase || w instanceof com.google.gwt.user.client.ui.TextBoxBase)) {
throw new IllegalArgumentException("Typeahead should be set TextBoxBase childs");
}
super.setWidget(w);
}