Domů O mně Služby Portfolio Učím Blog Kontakt
← Zpět na učím

1.1 Úvod do JavaScriptu a TypeScriptu

Výuka

Co je JavaScript?

JavaScript (JS) je programovací jazyk původně vytvořený pro webové prohlížeče. Dnes běží všude:

  • 🌐 Prohlížeče - interaktivní webové stránky
  • 🖥️ Servery - Node.js pro backend aplikace
  • 📱 Mobilní aplikace - React Native, Ionic
  • 🖥️ Desktop aplikace - Electron (VS Code, Discord)

Vlastnosti JavaScriptu:

  • ✅ Dynamicky typovaný (typy se kontrolují za běhu)
  • ✅ Interpretovaný (nemusíš kompilovat)
  • ✅ Multi-paradigma (OOP, funkcionální)
  • ✅ Single-threaded s event loop

Co je TypeScript?

TypeScript (TS) je nadstavba JavaScriptu vytvořená Microsoftem. Přidává statické typy.

TypeScript = JavaScript + Types

Vlastnosti TypeScriptu:

  • Staticky typovaný (typy se kontrolují při kompilaci)
  • Kompilovný (TS → JS)
  • Zpětně kompatibilní (každý JS je validní TS)
  • Volitelný (můžeš typy přidat postupně)

Proč TypeScript?

Výhoda Popis
🛡️ Bezpečnost Chyby vidíš před spuštěním
🚀 Produktivita Lepší autocomplete v editoru
📚 Dokumentace Typy jsou živá dokumentace
🔧 Refaktoring Bezpečnější změny kódu
👥 Týmová práce Jasné rozhraní mezi moduly

JavaScript

// JavaScript - bez typů
function greet(name) {
  return "Hello, " + name;
}

const message = greet("Jan");
console.log(message);  // "Hello, Jan"

// Může nastat chyba za běhu:
greet(123);  // "Hello, 123" (funguje, ale možná nechceš)
greet();     // "Hello, undefined" (chyba!)

// Objekty bez struktury
const user = {
  name: "Jan",
  age: 25
};

user.email = "jan@example.com";  // OK, přidá property
user.Age = 26;  // OK, ale je to překlep! (mělo být 'age')

TypeScript

// TypeScript - se typy
function greet(name: string): string {
  return "Hello, " + name;
}

const message = greet("Jan");
console.log(message);  // "Hello, Jan"

// TypeScript odchytí chyby:
// greet(123);   // ❌ Error: Argument of type 'number' is not assignable
// greet();      // ❌ Error: Expected 1 arguments, but got 0

// Objekty se strukturou (interface)
interface User {
  name: string;
  age: number;
  email?: string;  // Volitelné
}

const user: User = {
  name: "Jan",
  age: 25
};

user.email = "jan@example.com";  // ✅ OK
// user.Age = 26;  // ❌ Error: Property 'Age' does not exist
user.age = 26;     // ✅ OK

Rozdíl JS vs TS

JavaScript TypeScript
Typy za běhu (runtime) Typy při kompilaci (compile-time)
Chyby objevíš při spuštění Chyby vidíš v editoru
Rychlejší start (žádná kompilace) Pomalejší start (musíš kompilovat)
Flexibilnější Bezpečnější
.js soubory .ts soubory → kompiluje se na .js

Workflow:

JavaScript:
  Napíšeš kód (.js)  Spustíš  Chyba v runtime

TypeScript:
  Napíšeš kód (.ts)  Kompilace  Chyby se objeví  Opravíš  .js soubor  Spustíš

Tip

💡 Kdy použít JavaScript:

  • Rychlé prototypy
  • Malé skripty
  • Učení se základů

💡 Kdy použít TypeScript:

  • Velké projekty
  • Týmová práce
  • Produkční aplikace
  • React/Next.js projekty (doporučeno)

💡 Můžeš začít s JS a přejít na TS postupně:

// 1. Začni s .js
function add(a, b) { return a + b; }

// 2. Přejmenuj na .ts a přidej typy
function add(a: number, b: number): number {
  return a + b;
}

💡 TypeScript je JavaScript: Vše, co se naučíš v JS, použiješ i v TS. TS jen přidává bezpečnostní síť.


Kvíz

Které výroky jsou pravdivé?

- TypeScript je nadstavba JS, každý validní JS je validní TS

- TS kontroluje typy při kompilaci, ne za běhu

- Každý JS kód je validní TS kód (zpětná kompatibilita)

- TS se kompiluje (transpiluje) na čistý JavaScript

🎯 Závěrečný projekt

Po dokončení všech 8 dílů vytvoříte jednoduchou Todо aplikaci v čistém JavaScriptu. Naučíte se, jak aplikovat vše, co jste se naučili, na reálný projekt.

Zobrazit podrobnosti projektu →

Připraveni začít?

Zaregistrujte se a získejte přístup ke všem dílům tohoto seriálu

Kontaktujte mě

Informace o seriálu

Obtížnost

Délka

Cca 480 minut

Počet videí

8 videí + projekty

Certifikát

Po dokončení obdržíte certifikát


Lekce v této sekci


Struktura lekcí (souborový strom)

06. Typescript specifika
  • v přípravě
08. Moduly tridy
  • v přípravě
09. React zaklady
  • v přípravě
10. React hooks
  • v přípravě
12. Nextjs server
  • v přípravě
13. Databaze auth
  • v přípravě
14. Nextjs pokrocile
  • v přípravě