Problema: Confeccionar una página que muestre un control input y mediante un control HTML select permitir que tipo de elemento se creará, cuando se presione un botón crear en forma dinámica el control input seleccionado.
La interfaz visual a implementar previo a que se presione el botón debe ser:

Luego cuando se presiona el botón crear el control input respectivo y mostrarlo en la página:

index.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prueba</title>
<link rel="stylesheet" href="estilos.css">
</head>
<body>
<h1>Control input</h1>
<p>input type="
<select id="seleccion">
<option>seleccionar</option>
<option>text</option>
<option>button</option>
<option>checkbox</option>
<option>radio</option>
<option>file</option>
<option>password</option>
<option>submit</option>
<option>reset</option>
<option>range</option>
<option>hidden</option>
<option>date</option>
<option>color</option>
<option>email</option>
<option>month</option>
<option>number</option>
<option>search</option>
<option>tel</option>
<option>url</option>
<option>week</option>
</select> "
</p>
<p><input type="button" id="crear" value="crear"></p>
<div id="resultado"></div>
<script src="funciones.js"></script>
</body>
</html>
La funcionalidad se encuentra en el archivo JavaScript.
funciones.js
document.querySelector("#crear").addEventListener("click", () => {
const tipo = document.querySelector("#seleccion").value
if (tipo != "seleccionar")
document.querySelector("#resultado").innerHTML = `<input type="${tipo}">`
else
document.querySelector("#resultado").innerHTML = ""
})
Cuando se presiona el botón si el control "seleccion" almacena un string distinto a "seleccionar" se procede a crear un control del tipo seleccionado:
document.querySelector("#resultado").innerHTML = `<input type="${tipo}">`