top of page

Como Criar um Script Interativo em TypeScript para Somar Dois Números no Terminal

No universo da programação, automatizar interações simples via terminal pode ser extremamente útil para testes, validações rápidas ou até mesmo em ferramentas CLI (Command Line Interface). Neste post, vamos aprender como criar um script em TypeScript que solicita dois números ao usuário e exibe a soma.




🛠️ Este projeto é ideal para quem está começando com TypeScript e quer explorar a entrada de dados via terminal.

🧠 O que vamos construir?

Um pequeno programa em TypeScript que:

  1. Solicita dois números ao usuário via terminal;

  2. Converte os dados de texto para números;

  3. Realiza a soma;

  4. Exibe o resultado no console.


Pré-requisitos:


Antes de começarmos, certifique-se de ter o Node.js e o TypeScript instalados na sua máquina. Se ainda não tiver, você pode instalá-los com os seguintes comandos:


npm install -g typescript

O Código Explicado


import * as readline from "readline";
const rl = readline.createInterface({

/* para executar em terminal converta para js tsc arquivo.ts
 e execute com node arquivo.js
*/

    input: process.stdin,
    output: process.stdout
});

rl.question("Qual o primeiro número?",(num1: string) =>{

const numero1 = parseFloat(num1);

rl.question("Qual o segundo número?" ,(num2: string)=>{

    const numero2 = parseFloat(num2);

    const soma : number=numero1 + numero2;
    console.log("A soma é de: ",soma);

    rl.close();

});


});

---------------------------------------------------------------------------------------------------------------------------

import * as readline from 'readline';

Aqui, estamos importando o módulo readline, nativo do Node.js, que permite ler dados de entrada do usuário via terminal.


---------------------------------------------------------------------------------------------------------------------------


const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

Criamos uma interface de leitura chamada rl. Ela escuta a entrada padrão (stdin) e escreve na saída padrão (stdout), ou seja, o próprio terminal.


---------------------------------------------------------------------------------------------------------------------------


Capturando o Primeiro Número


rl.question("Qual o primeiro número?", (num1: string) => {
    const numero1 = parseFloat(num1);

Aqui usamos rl.question para perguntar ao usuário o primeiro número. Como tudo que vem do terminal é string, usamos parseFloat para converter para número com casas decimais (caso existam).

---------------------------------------------------------------------------------------------------------------------------

Capturando o Segundo Número e Realizando a Soma


rl.question("Qual o segundo número?", (num2: string) => {
        const numero2 = parseFloat(num2);
        const soma: number = numero1 + numero2;
        console.log("A soma é de: ", soma);
        rl.close();
    });

Dentro do primeiro callback, fazemos uma nova pergunta para capturar o segundo número, convertemos para float novamente, somamos e mostramos o resultado no console.

Por fim, fechamos a interface rl com rl.close() para encerrar a entrada de dados.


---------------------------------------------------------------------------------------------------------------------------


Como Executar

  1. Salve o código em um arquivo, por exemplo: soma.ts

  2. Compile com o TypeScript:

tsc soma.ts

3.Execute com o Node.js:


node soma.js

---------------------------------------------------------------------------------------------------------------------------


Saída esperada:


Qual o primeiro número? 10
Qual o segundo número? 20
A soma é de:  30

 
 
 

Comments


CONTATO
REDES SOCIAIS

Distrito Agrícola de Ubu

Goiana - PE 55900-000

              

              81 9 9193-1883

  • Facebook ícone social
  • Instagram
  • X
  • YouTube
Whatsapp
nascimento networks symbol new_edited.pn
SCM - ISM
Nascimento Networks Empire

©2025 Nascimento Networks Technologies    CNPJ: 50.191.234/0001-31

Protegido com tecnologia desenvolvida 

em Israel.

bottom of page