let text = 'qwertyu';
let output = '';
let currentIndex = 0;
let intervalID = setInterval(() => {
    output += text[currentIndex];
    currentIndex += 1;
    console.log(output);
    if (currentIndex === text.length) {
        clearInterval(intervalID)
    };
}, 1000)
Также рекомендуют это делать через useEffect хук:
function RenderSubtitle() {
  const [subtitle, setSubtitle] = useState('');
  const text = 'qwertyu';
  let currentIndex = 0;
  useEffect(() => {
    const id = setInterval(() => {
      setSubtitle(prev => prev + text[currentIndex] );
      currentIndex += 1;
      if (currentIndex === text.length) {
          clearInterval(id)
      };
    }, 1000);
    return () => clearInterval(id);
  }, []);
  return <h1>{subtitle}</h1>;
}