Travailler avec le système de fichiers en TypeScript : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction au travail avec le système de fichiers en TypeScript



Le travail avec le système de fichiers est l'une des tâches clés lors du développement d'applications serveur, d'utilitaires et d'outils en ligne de commande. TypeScript, en tant que surcouche de JavaScript, offre toutes les capacités de Node.js pour interagir avec les fichiers et les répertoires, mais ajoute un typage strict, rendant le code plus fiable et prévisible.



Dans cet article, nous allons examiner en détail comment travailler avec le système de fichiers en TypeScript : des opérations de base de lecture et d'écriture aux techniques avancées, comme le travail avec les flux et le traitement asynchrone. Tous les exemples sont accompagnés de code prêt à l'emploi que vous pouvez utiliser immédiatement dans vos projets.



Pour travailler avec le système de fichiers en TypeScript, on utilise le module intégré fs (file system) de Node.js. Il fournit à la fois des méthodes synchrones et asynchrones. Dans les projets modernes, il est recommandé d'utiliser les versions asynchrones avec des promesses (fs.promises) pour une exécution non bloquante.



1. Configuration du projet et importation des modules



Avant de commencer, assurez-vous que votre projet est configuré pour fonctionner avec Node.js et TypeScript. Créez un répertoire de projet et initialisez-le :



mkdir fs-typescript-tutorialcd fs-typescript-tutorialnpm init -ynpm install typescript @types/node --save-devnpx tsc --init


Après la configuration, dans le fichier tsconfig.json, assurez-vous que le paramètre module est défini sur commonjs ou ESNext, et que target est défini sur ES2020 ou supérieur.



Créons maintenant un fichier index.ts et importons les modules nécessaires :



import * as fs from 'fs';import * as path from 'path';

// Ou utilisons la version promisesimport { promises as fsPromises } from 'fs';


Le module path est également important : il fournit des utilitaires pour travailler avec les chemins de fichiers, rendant le code multiplateforme (Windows vs Unix).



2. Lecture et écriture de fichiers



2.1 Lecture d'un fichier



Examinons les opérations de base avec les fichiers. Commençons par la lecture du contenu d'un fichier. L'approche asynchrone avec async/await est la méthode la plus moderne et pratique.



import { promises as fs } from 'fs';

async function readFileExample(filePath: string): Promise<string> { try { const data = await fs.readFile(filePath, 'utf-8'); return data; } catch (error) { console.error('Erreur lors de la lecture du fichier :', error); throw error; }}

// Utilisationasync function main() { const content = await readFileExample('./example.txt'); console.log('Contenu du fichier :', content);}

main();


La méthode readFile prend le chemin du fichier et un encodage optionnel (par défaut null — retourne un Buffer). Si vous spécifiez 'utf-8', une chaîne de caractères sera retournée.



2.2 Écriture dans un fichier



L'écriture de données dans un fichier se fait avec writeFile. Si le fichier n'existe pas, il sera créé. S'il existe, il sera écrasé.



import { promises as fs } from 'fs';

async function writeFileExample(filePath: string, data: string): Promise<void> { try { await fs.writeFile(filePath, data, 'utf-8'); console.log('Fichier écrit avec succès'); } catch (error) { console.error('Erreur lors de l\\'écriture du fichier :', error); throw error; }}

// Ajout à la fin du fichier (append)async function appendFileExample(filePath: string, data: string): Promise<void> { try { await fs.appendFile(filePath, data + '', 'utf-8'); console.log('Données ajoutées à la fin du fichier'); } catch (error) { console.error('Erreur lors de l\\'ajout des données :', error); throw error; }}


2.3 Travail avec les fichiers JSON



Dans les applications, il est souvent nécessaire de sauvegarder et de charger des données au format JSON. Voici une enveloppe pratique :

Blogs

Book Recommendations