Capitol gratuit

Configurare si setup

# Instalare globala (pentru CLI tsc) npm install -g typescript # Instalare in proiect (recomandat) npm install -D typescript # Verificare versiune tsc --ve...

Instalare TypeScript

# Instalare globala (pentru CLI tsc)
npm install -g typescript

# Instalare in proiect (recomandat)
npm install -D typescript

# Verificare versiune
tsc --version    # Version 5.x.x

# Initializare tsconfig.json
tsc --init

tsconfig.json

Fisierul tsconfig.json controleaza comportamentul compilatorului TypeScript. Iata o configuratie moderna recomandata:

{
"compilerOptions": {
// Baza
"target": "ES2022",              // JavaScript target
"module": "NodeNext",            // Sistem module
"moduleResolution": "NodeNext",  // Rezolutie import-uri
"lib": ["ES2022"],               // API-uri disponibile

// Strictete (TOATE activate!)
"strict": true,                  // Activeaza tot ce urmeaza:
// "strictNullChecks": true,     // null/undefined trebuie gestionate
// "strictFunctionTypes": true,  // Parametri functii stricti
// "strictPropertyInitialization": true, // Proprietati initializate
// "noImplicitAny": true,        // Interzice any implicit
// "noImplicitThis": true,       // this trebuie tipizat

// Verificari suplimentare
"noUncheckedIndexedAccess": true, // array[i] poate fi undefined
"noUnusedLocals": true,           // Variabile nefolosite = eroare
"noUnusedParameters": true,       // Parametri nefolositi = eroare
"exactOptionalPropertyTypes": true, // Optional != undefined explicit
"noFallthroughCasesInSwitch": true, // switch fara break = eroare

// Output
"outDir": "./dist",              // Folder output
"rootDir": "./src",              // Folder sursa
"declaration": true,             // Genereaza .d.ts
"sourceMap": true,               // Source maps pentru debugging
"removeComments": true,          // Sterge comentarii din output

// Interoperabilitate
"esModuleInterop": true,         // Import default din CommonJS
"forceConsistentCasingInImports": true,
"skipLibCheck": true,            // Skip verificare .d.ts (viteza)
"resolveJsonModule": true        // Import JSON direct
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "**/*.test.ts"]
}
⚠️ Strict mode este obligatoriu!

Nu dezactivati "strict": true. Fara strict mode, TypeScript permite any implicit peste tot, anuland majoritatea beneficiilor. Proiectele fara strict sunt doar JavaScript cu sintaxa de tipuri.

VS Code - configurare IDE

VS Code are suport nativ excelent pentru TypeScript. Extensii recomandate:

  • TypeScript Importer - auto-import la completare
  • Error Lens - erori afisate inline
  • Pretty TypeScript Errors - erori formatate lizibil
  • ESLint - linting cu reguli TypeScript

ESLint pentru TypeScript

npm install -D eslint @eslint/js typescript-eslint

// eslint.config.js
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';

export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname
}
},
rules: {
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-floating-promises': 'error'
}
}
);
💡 Executie directa TypeScript

Nu mai e nevoie de compilare manuala! Folositi: tsx (npx tsx src/index.ts) - cel mai rapid runner, Bun (bun run src/index.ts) - suport nativ TS, sau Node.js 22+ cu --experimental-strip-types. Pentru productie, compilati cu tsc sau esbuild.

Continuați cu restul cursului

Acesta este capitolul 2 din cele 20 ale cursului, cu 3 lecții din 71. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.

Cumpărați cursul la 110 €