Вы передаете тип компонента, который будет создан с помощью JSX. Внутренне это выглядит примерно так
function Button(props) {
const ComponentType = as;
.......
<ComponentType ......>
Так что, как вы знаете, это будет работать, если это строка с тэгом родного элемента ("div"
, "table"
et c) или действительный компонент React (класс унаследован React.Component
или функция для функционального компонента)