TypeScript:
Escrevendo um arquivo de texto
Como fazer:
O TypeScript por si só não lida diretamente com operações de arquivo, pois é compilado para JavaScript, que tradicionalmente é executado no navegador com acesso limitado ao sistema de arquivos. No entanto, quando utilizado em um ambiente Node.js, o módulo fs
(Sistema de Arquivos) fornece funcionalidades para escrever arquivos.
Usando o módulo fs do Node.js
Primeiro, garanta que você está trabalhando em um ambiente Node.js. Então, use o módulo fs
para escrever arquivos de texto. Aqui está um exemplo básico:
import * as fs from 'fs';
const data = 'Olá, mundo!';
const filePath = './mensagem.txt';
fs.writeFile(filePath, data, 'utf8', (err) => {
if (err) throw err;
console.log('O arquivo foi salvo!');
});
Isso escreverá de forma assíncrona “Olá, mundo!” em mensagem.txt
. Se o arquivo não existir, o Node.js o cria; se existir, o Node.js o sobrescreve.
Para escrita de arquivo síncrona, use writeFileSync
:
import * as fs from 'fs';
const data = 'Olá de novo, mundo!';
const filePath = './mensagem.txt';
try {
fs.writeFileSync(filePath, data, 'utf8');
console.log('O arquivo foi salvo!');
} catch (err) {
console.error(err);
}
Usando bibliotecas de terceiros populares
Embora o módulo fs
nativo seja poderoso, alguns desenvolvedores preferem usar bibliotecas de terceiros para conveniência e funcionalidade adicionais. fs-extra
é uma escolha popular que estende o fs
e torna as operações de arquivo mais diretas.
Primeiro, você precisará instalar o fs-extra
:
npm install fs-extra
Depois, você pode usá-lo em seu arquivo TypeScript para escrever conteúdo de texto:
import * as fs from 'fs-extra';
const data = 'Isso é fs-extra!';
const filePath = './extraMessage.txt';
// Usando async/await
async function writeFile() {
try {
await fs.writeFile(filePath, data, 'utf8');
console.log('O arquivo foi salvo com fs-extra!');
} catch (err) {
console.error(err);
}
}
writeFile();
Este trecho de código faz a mesma coisa que os exemplos anteriores de fs
, mas utiliza a biblioteca fs-extra
, oferecendo uma sintaxe mais limpa para o tratamento de promessas.