cnam:utc503:ts

Structure de base TypeScript console

mkdir mon-projet-console
cd mon-projet-console
npm init -y
npm install typescript @types/node ts-node --save-dev
npx tsc --init
mon-projet-console/
├── src/
│   └── index.ts
├── dist/              (généré à la compilation)
├── package.json
├── tsconfig.json
└── node_modules/
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
// Point d'entrée du programme
function main(): void {
  console.log("Hello, World depuis TypeScript !");
 
  // Récupérer les arguments de la ligne de commande
  const args: string[] = process.argv.slice(2);
 
  if (args.length > 0) {
    console.log("Arguments reçus :", args);
  }
 
  // Exemple d'interaction basique
  const nom: string = "Utilisateur";
  saluer(nom);
}
 
function saluer(nom: string): void {
  console.log(`Bonjour, ${nom} !`);
}
 
// Lancement du programme
main();
{
  "name": "mon-projet-console",
  "version": "1.0.0",
  "scripts": {
    "build": "tsc",
    "start": "node dist/index.js",
    "dev": "ts-node src/index.ts",
    "watch": "tsc --watch"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "@types/node": "^20.0.0",
    "ts-node": "^10.9.0"
  }
}
# Exécution directe en développement (sans compiler)
npm run dev
 
# Compiler puis exécuter
npm run build
npm start
 
# Compilation automatique en continu
npm run watch

Pour un programme interactif type CLI, utilisez le module readline :

import * as readline from 'readline';
 
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
 
rl.question("Quel est votre nom ? ", (reponse: string) => {
  console.log(`Bonjour, ${reponse} !`);
  rl.close();
});

Pour des CLI plus avancées (avec options, sous-commandes, etc.), pensez à des librairies comme :

  • commander – gestion d'arguments et sous-commandes
  • inquirer – prompts interactifs élégants
  • chalk – colorer la sortie console
npm install commander inquirer chalk
  • cnam/utc503/ts.txt
  • Dernière modification : il y a 24 heures
  • de jcheron