"strict": true στο tsconfig.json ενεργοποιεί μια σειρά αυστηρότερων ελέγχων ταυτόχρονα. Συνιστάται ανεπιφύλακτα για όλα τα νέα έργα — αποτρέπει τα σφάλματα που υπάρχει το TypeScript για να αποτρέψει.
// strictNullChecks — null/undefined are no longer assignable to everything
let name: string = null; // ❌ Error (without strict this compiles, then crashes)
function f(u?: User) { u.name; } // ❌ u is possibly undefined → forces a check
// noImplicitAny — parameters with no inferable type must be annotated
function g(x) {} // ❌ Error: 'x' implicitly has type 'any'
// strictPropertyInitialization — class fields must be initialized
class C { name: string; } // ❌ must init in constructor or mark optional
strictNullChecks είναι η σημαντική: χωρίζει null/undefined από άλλους τύπους, έτσι ο compiler σας αναγκάζει να χειρίζεστε "ενδέχεται να λείπει" παντού — εξαλείφοντας την κύρια κατηγορία σφαλμάτων εκτέλεσης ("δεν μπορώ να διαβάσω ιδιότητα του undefined").
Ενεργοποιήστε τις σημαίες σταδιακά (strictNullChecks πρώτα), διορθώστε τα σφάλματα αρχείο προς αρχείο, αντί να ενεργοποιήσετε τα πάντα ταυτόχρονα σε ένα μεγάλο κληροδότητα έργο.
Χωρίς αυστηρή λειτουργία, το TypeScript εξακολουθεί να επιτρέπει πολλά από τα ασφαλή μοτίβα που προορίζεται να αποτρέψει (implicit any, ανέλεγκτα nulls).
Η λειτουργία strict mode είναι όπου το TypeScript παρέχει τη μεγαλύτερη τιμή — θεωρήστε την ως προεπιλογή και χαλαρώστε μόνο μεμονωμένες σημαίες με καλό λόγο.