Trabalhando com o sistema de arquivos em TypeScript: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Introdução ao trabalho com o sistema de arquivos em TypeScript



TypeScript é uma extensão estritamente tipada do JavaScript que adiciona tipagem estática e melhora a legibilidade e a manutenibilidade do código. Uma das tarefas principais no desenvolvimento de aplicações server-side é o trabalho com o sistema de arquivos: leitura e escrita de arquivos, criação e exclusão de diretórios, gerenciamento de fluxos de dados. Neste artigo, vamos detalhar como trabalhar eficientemente com o sistema de arquivos em TypeScript, usando o módulo nativo fs do Node.js.



O módulo fs fornece métodos síncronos e assíncronos para interagir com o sistema de arquivos. Em TypeScript, podemos aproveitar as vantagens da tipagem para tornar o código mais robusto e compreensível. Abordaremos as operações principais, incluindo leitura, escrita, verificação de existência de arquivos, trabalho com diretórios e tratamento de erros.



Operações básicas com arquivos



Leitura de arquivos



Para ler o conteúdo de um arquivo em TypeScript, pode-se usar o método readFile (assíncrono) ou readFileSync (síncrono). A abordagem assíncrona é recomendada para uma execução não bloqueante do programa.



import { readFile } from 'fs/promises';

async function readFileExample(filePath: string): Promise<string> { try { const data = await readFile(filePath, 'utf-8'); return data; } catch (error) { console.error('Erro ao ler o arquivo:', error); throw error; }}

// UsoreadFileExample('example.txt').then(content => { console.log('Conteúdo do arquivo:', content);});


Observe o uso de fs/promises — um wrapper baseado em Promises que permite usar a sintaxe async/await. O tipo de retorno Promise<string> indica explicitamente que a função retorna uma string.



Escrita em arquivos



A escrita de dados em um arquivo é feita pelos métodos writeFile e writeFileSync. Em TypeScript, é importante tratar corretamente os possíveis erros, especialmente se o arquivo estiver protegido contra escrita ou o caminho não existir.



import { writeFile, mkdir } from 'fs/promises';import { existsSync } from 'fs';

async function writeFileExample(filePath: string, data: string): Promise<void> { try { // Verifica se o diretório existe const dir = filePath.substring(0, filePath.lastIndexOf('/')); if (dir && !existsSync(dir)) { await mkdir(dir, { recursive: true }); } await writeFile(filePath, data, 'utf-8'); console.log('Arquivo escrito com sucesso'); } catch (error) { console.error('Erro ao escrever o arquivo:', error); }}

// UsowriteFileExample('data/output.txt', 'Hello, TypeScript!');


Neste exemplo, primeiro verificamos a existência do diretório e o criamos se necessário usando mkdir com a opção recursive: true. Isso evita o erro "ENOENT" se a pasta pai não existir.



Adicionar dados ao final do arquivo



Se precisar adicionar dados a um arquivo existente, use o método appendFile:



import { appendFile } from 'fs/promises';

async function appendToFile(filePath: string, data: string): Promise<void> { try { await appendFile(filePath, '' + data, 'utf-8'); console.log('Dados adicionados'); } catch (error) { console.error('Erro ao adicionar:', error); }}


Trabalho com diretórios



Criação e exclusão de diretórios



Para criar diretórios, usa-se mkdir; para excluir, rmdir ou rm (para exclusão recursiva). Em TypeScript, é conveniente usar genéricos para tipar os caminhos.



import { mkdir, rmdir, rm } from 'fs/promises';import { existsSync } from 'fs';

async function createDirectory(di ```

Blogs

Book Recommendations