TypeScript:
Odczytywanie pliku tekstowego
How to:
Łapcie krótki przykład użycia fs i readFile z promises (do uniknięcia callback hell).
import { promises as fsPromises } from 'fs';
async function readTextFile(filePath: string): Promise<string> {
try {
const data = await fsPromises.readFile(filePath, 'utf8');
return data;
} catch (error) {
throw new Error('Error reading the file');
}
}
// Użycie
const filePath = './sample.txt';
readTextFile(filePath)
.then((content) => console.log(content))
.catch((error) => console.error(error));Gdybyśmy mieli plik sample.txt z tekstem “Witaj, świecie!”, output będzie:
Witaj, świecie!Deep Dive:
Czytanie plików tekstowych w TypeScript ma długą historię, głównie związana z Node.js, który dostarczał API dla operacji na plikach. Wcześniej rozpowszechnione były callbacki, które mogły prowadzić do zagnieżdżonych konstrukcji, nazywanych “callback hell”. Dziś preferowane są Promise i async/await dla lepszej czytelności i obsługi błędów.
Alternatywy dla fs obejmują biblioteki zewnętrzne, takie jak fs-extra czy strumienie (streams), które lepiej nadają się do pracy z dużymi plikami. Strumienie pozwalają na odczyt danych w cząstkach, nie obciążając pamięci całym plikiem na raz.
W implementacji warto zwrócić uwagę na kodowanie pliku (standardowo utf8), ponieważ ignorowanie tego może prowadzić do problemów z niepoprawnie wyświetlającymi się znakami.
See Also:
- Node.js
fsmodule documentation: Node.js File System fs-extralibrary: fs-extra- Understanding
async/awaitin TypeScript: Async/Await - Mozilla