TypeScript:
Controleren of een directory bestaat
Hoe te:
In TypeScript gebruik je meestal Node.js’s fs
module om te controleren op een directory. Hier is de snelle manier om het te doen:
import { existsSync } from 'fs';
// Controleren of een directory bestaat
const directoryPath = './path/to/directory';
if (existsSync(directoryPath)) {
console.log(`Yep, hij is er!`);
} else {
console.log(`Nee, bestaat niet.`);
}
Output is afhankelijk van het bestaan van de directory:
Yep, hij is er!
// of
Nee, bestaat niet.
Diepere Duik
Historisch gezien gebruikten mensen de asynchrone fs.exists
, maar deze werd afgekeurd omdat het een vervelende gewoonte had om programmeerfouten te veroorzaken, zoals check-then-act racecondities. existsSync
is eenvoudiger en schakelt de callback rommel uit.
Wat alternatieven betreft, de fs.statSync
of fs.accessSync
methoden kunnen ook het werk doen, maar vereisen wat meer code:
import { statSync } from 'fs';
try {
const stats = statSync(directoryPath);
if (stats.isDirectory()) {
console.log('Hij bestaat inderdaad.');
}
} catch (error) {
if (error.code === 'ENOENT') {
console.log('Nee, nergens te vinden.');
}
}
Zowel statSync
als accessSync
geven fouten als het pad niet bestaat, dus je moet dat afhandelen.
Wanneer je TypeScript gebruikt, herinner je dan dat deze methoden van Node.js komen, niet van TypeScript zelf. En de rol van TypeScript? Voornamelijk, het biedt de types en zorgt ervoor dat je de methoden correct gebruikt.
Zie Ook
- Node.js Bestandssysteem Documentatie: https://nodejs.org/api/fs.html
- TypeScript Handboek: https://www.typescriptlang.org/docs/handbook/intro.html
- Foutafhandeling in Node.js: https://nodejs.org/en/knowledge/errors/what-are-the-error-conventions/