تمرين إعادة البناء
File Line Counter
أعد كتابة أداة TypeScript تحسب الأسطر والكلمات والمحارف في ملف.
typescript
~12 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
declare const process: {
argv: string[];
exit(code?: number): never;
};
type FileSystemModule = {
readFileSync(path: string, encoding: "utf8"): string;
};
declare function require(name: "fs"): FileSystemModule;
type FileStats = {
lines: number;
words: number;
characters: number;
};
const fs = require("fs");
function countText(text: string): FileStats {
const trimmed = text.trim();
return {
lines: text.length === 0 ? 0 : text.split(/\r?\n/).length,
words: trimmed.length === 0 ? 0 : trimmed.split(/\s+/).length,
characters: text.length,
};
}
function main(): void {
const filePath = process.argv[2];
if (!filePath) {
console.log("Usage: ts-node file-line-counter.ts notes.txt");
return;
}
const text = fs.readFileSync(filePath, "utf8");
const stats = countText(text);
console.log(`Lines: ${stats.lines}`);
console.log(`Words: ${stats.words}`);
console.log(`Characters: ${stats.characters}`);
}
main();اكتب هنا