Przejdź do głównej treści
eLearner.app
Moduł 7 · Lekcja 1 z 213/14 w kursie~12 min
Lekcje modułu (1/2)

Konfiguracja z tsconfig.json

Plik tsconfig.json definiuje katalog główny projektu TypeScript i określa opcje kompilacji wymagane do skompilowania projektu.

Po uruchomieniu polecenia tsc w katalogu projektu kompilator wyszukuje ten plik, aby określić swoje zachowanie.


Struktura pliku tsconfig.json

Typowy plik konfiguracji wygląda następująco:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

Główne klucze to:

  • compilerOptions: Ustawienia kompilatora.
  • include: Pliki lub katalogi, które powinny zostać skompilowane.
  • exclude: Pliki lub katalogi do zignorowania podczas kompilacji.

Kluczowe opcje kompilatora

Oto najważniejsze opcje, które warto znać:

  1. target: Określa wersję JavaScript generowaną na wyjściu (np. es5, es6/es2015, es2020, esnext).
  2. module: Określa system modułów, który ma być używany w plikach wyjściowych (np. commonjs, esnext, node16).
  3. strict: Włącza szeroką gamę rygorystycznych kontroli typów. Zdecydowanie zaleca się ustawienie tej opcji na true w celu maksymalizacji bezpieczeństwa kodu. Włącza ona opcje takie jak:
    • noImplicitAny: Generuje błąd, jeśli brakuje adnotacji typu dla parametrów, które w przeciwnym razie zostałyby wydedukowane jako any.
    • strictNullChecks: Zapobiega przypisywaniu wartości null lub undefined do typów, które nie przewidują ich jawnie w swojej unii.

Spróbuj sam

Ćwiczenie 1: Obsługa strictNullChecks

Ćwiczenie#ts.m7.l1.e1
Próby: 0Ładowanie...

Przy włączonej opcji strictNullChecks: true w pliku tsconfig.json nie możemy przypisywać null ani undefined do typów prostych. Zadeklaruj funkcję o nazwie parseAge, która przyjmuje wejście typu string | null i zwraca number, jeśli wejście nie jest nullem i jest poprawną liczbą całkowitą, w przeciwnym razie zwraca 0. Obsłuż jawnie przypadek null, aby przejść rygorystyczną kompilację.

Ładowanie edytora...
Pokaż wskazówkę

Sprawdź, czy input jest równy null na początku funkcji i natychmiast zwróć 0 przed przetworzeniem ciągu znaków.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie 2: Rygorystyczne typowanie bez Implicit Any

Ćwiczenie#ts.m7.l1.e2
Próby: 0Ładowanie...

Przy włączonej opcji noImplicitAny: true, każdy parametr, którego typu nie można wydedukować, musi być jawnie otypowany. Utwórz funkcję o nazwie processItems, która przyjmuje tablicę items (tablica liczb) oraz funkcję wywołania zwrotnego (callback), która przyjmuje pojedynczą liczbę jako argument i nic nie zwraca. Upewnij się, że nie używasz any i typujesz wszystko jawnie.

Ładowanie edytora...
Pokaż wskazówkę

Zadeklaruj funkcję z sygnaturą function processItems(items: number[], callback: (item: number) => void): void.

Rozwiązanie dostępne po 3 próbach