TypeScript:
Pisanie pliku tekstowego

Jak to zrobić:

Sam TypeScript nie obsługuje bezpośrednio operacji na plikach, ponieważ kompiluje się do JavaScript, który tradycyjnie jest uruchamiany w przeglądarce z ograniczonym dostępem do systemu plików. Jednakże, gdy używany jest w środowisku Node.js, moduł fs (File System) zapewnia funkcjonalność zapisywania plików.

Korzystanie z modułu fs Node.js

Najpierw upewnij się, że pracujesz w środowisku Node.js. Następnie użyj modułu fs do zapisywania plików tekstowych. Oto podstawowy przykład:

import * as fs from 'fs';

const data = 'Hello, world!';
const filePath = './message.txt';

fs.writeFile(filePath, data, 'utf8', (err) => {
    if (err) throw err;
    console.log('Plik został zapisany!');
});

To asynchronicznie zapisze “Hello, world!” do message.txt. Jeśli plik nie istnieje, Node.js go tworzy; jeśli istnieje, Node.js go nadpisuje.

Do synchronicznego zapisywania plików użyj writeFileSync:

import * as fs from 'fs';

const data = 'Hello again, world!';
const filePath = './message.txt';

try {
    fs.writeFileSync(filePath, data, 'utf8');
    console.log('Plik został zapisany!');
} catch (err) {
    console.error(err);
}

Korzystanie z popularnych bibliotek firm trzecich

Chociaż natywny moduł fs jest potężny, niektórzy programiści wolą korzystać z bibliotek firm trzecich dla dodatkowej wygody i funkcjonalności. fs-extra jest popularnym wyborem, który rozszerza fs i upraszcza operacje na plikach.

Najpierw musisz zainstalować fs-extra:

npm install fs-extra

Następnie możesz go użyć w swoim pliku TypeScript do zapisywania treści tekstowej:

import * as fs from 'fs-extra';

const data = 'To jest fs-extra!';
const filePath = './extraMessage.txt';

// Korzystając z async/await
async function writeFile() {
    try {
        await fs.writeFile(filePath, data, 'utf8');
        console.log('Plik został zapisany za pomocą fs-extra!');
    } catch (err) {
        console.error(err);
    }
}

writeFile();

Ten fragment kodu robi to samo co wcześniejsze przykłady z fs, ale wykorzystuje bibliotekę fs-extra, oferując czystrzą składnię do obsługi obietnic.