Esta es la forma que encontré de hacer funcionar el contador de caracteres. La respuesta al probar su código no respondía de ninguna forma.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Verificando el tamaño del post en twitter</title>
</head>
<body>
<textarea id="cuerpo-mensaje" cols="40" rows="5">
</textarea>
<p>Caracteres:
<span id="numero-caracteres">0</span> caracteres.</p>
<script>
//función contador.js
var inputTexto = document.querySelector("#cuerpo-mensaje");
inputTexto.addEventListener("input", actualizarCaracteres);
function actualizarCaracteres() {
var mensaje = inputTexto.value;
var caracteres = mensaje.length;
var contador = document.querySelector("#numero-caracteres");
contador.innerHTML = caracteres;
}
</script>
</body>
</html>