57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import * as promptSync from 'prompt-sync';
|
||
interface Item {
|
||
id: number;
|
||
nome: string;
|
||
descricao: string;
|
||
}
|
||
const prompt = promptSync();
|
||
let itens: Item[] = [];
|
||
let idAtual = 1;
|
||
const exibirMenu = () => {
|
||
console.log("\n1. Criar\n2. Listar\n3. Atualizar\n4. Excluir\n5.
|
||
Sair\nEscolha uma opção:");
|
||
};
|
||
const criar = () => {
|
||
const nome = prompt("Nome do item: ");
|
||
const descricao = prompt("Descrição do item: ");
|
||
itens.push({ id: idAtual++, nome, descricao });
|
||
console.log("Item criado com sucesso!");
|
||
};
|
||
const listar = () => {
|
||
if (itens.length === 0) return console.log("Nenhum item cadastrado.");
|
||
itens.forEach(i => console.log(`ID: ${i.id}, Nome: ${i.nome},
|
||
Descrição: ${i.descricao}`));
|
||
};
|
||
const atualizar = () => {
|
||
const id = parseInt(prompt("ID do item a atualizar: "));
|
||
const item = itens.find(i => i.id === id);
|
||
if (!item) return console.log("Item não encontrado.");
|
||
item.nome = prompt(`Novo nome (atualmente: ${item.nome}): `);
|
||
item.descricao = prompt(`Nova descrição (atualmente:
|
||
${item.descricao}): `);
|
||
console.log("Item atualizado com sucesso!");
|
||
};
|
||
const excluir = () => {
|
||
const id = parseInt(prompt("ID do item a excluir: "));
|
||
const index = itens.findIndex(i => i.id === id);
|
||
if (index === -1) return console.log("Item não encontrado.");
|
||
itens.splice(index, 1);
|
||
console.log("Item excluído com sucesso!");
|
||
};
|
||
const main = () => {
|
||
let opcao: number;
|
||
|
||
do {
|
||
exibirMenu();
|
||
opcao = parseInt(prompt("> "));
|
||
switch (opcao) {
|
||
case 1: criar(); break;
|
||
case 2: listar(); break;
|
||
case 3: atualizar(); break;
|
||
case 4: excluir(); break;
|
||
case 5: console.log("Saindo..."); break;
|
||
default: console.log("Opção inválida.");
|
||
}
|
||
} while (opcao !== 5);
|
||
};
|
||
main(); |