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

1.14 Komentáře

Výuka

Komentáře jsou části kódu, které interpret/kompilátor ignoruje. Slouží pro:

  • 📝 Vysvětlení kódu
  • 🔍 Dokumentaci
  • 🛑 Dočasné vypnutí kódu (debugging)
  • 💡 Poznámky pro budoucí sebe nebo kolegy

Typy komentářů

Typ Syntaxe Použití
Jednořádkový // komentář Krátké poznámky na konci řádku
Víceřádkový /* komentář */ Dlouhé poznámky, bloky textu
JSDoc /** @param */ Dokumentace funkcí (TS/JS)

JavaScript

// Jednořádkový komentář
const pi = 3.14159;  // Přibližná hodnota pí

/*
  Víceřádkový komentář
  Může obsahovat více řádků
  Užitečný pro delší vysvětlení
*/

/* Také lze použít inline */ const x = 5;

// Dočasné vypnutí kódu
// console.log('Debug info');
// debugger;

// TODO: Implementovat validaci
// FIXME: Bug při záporných číslech
// NOTE: Tato funkce je deprecated

/**
 * JSDoc komentář - dokumentace funkce
 * @param {string} name - Jméno uživatele
 * @param {number} age - Věk uživatele
 * @returns {string} Pozdrav
 */
function greet(name, age) {
  return `Hello ${name}, you are ${age} years old`;
}

// Komentáře pro vysvětlení složité logiky
function complexCalculation(x) {
  // Přepočet z Fahrenheita na Celsia
  // Vzorec: C = (F - 32) × 5/9
  return (x - 32) * (5 / 9);
}

TypeScript

// Jednořádkové komentáře jsou stejné jako v JS
const count: number = 0;

/*
  Víceřádkové komentáře
  fungují identicky
*/

/**
 * JSDoc v TypeScriptu poskytuje dodatečnou dokumentaci
 * k už existujícím typům
 *
 * @param name - Jméno uživatele (TS už ví, že je to string)
 * @param age - Věk (TS už ví, že je to number)
 * @returns Formátovaný pozdrav
 * @example
 * greet('Jan', 25); // "Hello Jan, you are 25 years old"
 */
function greet(name: string, age: number): string {
  return `Hello ${name}, you are ${age} years old`;
}

// TS ignoruje komentáře při kompilaci
// Tyto komentáře se objeví v zkompilovaném .js

/**
 * Interface s dokumentací
 */
interface User {
  /** Unikátní ID uživatele */
  id: number;

  /** Celé jméno */
  name: string;

  /** Email (volitelný) */
  email?: string;
}

// Type assertion s vysvětlením
const data = JSON.parse(jsonString) as User;  // Safe, ověřeno validací

Rozdíl JS vs TS

JavaScript:

  • Pouze pro dokumentaci a poznámky
  • JSDoc může pomoci IDE s autocomplete
  • Žádná kontrola typů z komentářů

TypeScript:

  • JSDoc je méně potřebný (typy jsou v kódu)
  • Používá se pro dodatečnou dokumentaci
  • Popisuje "proč" místo "co" (to je v typech)
// JS - typy v komentářích (JSDoc)
/**
 * @param {string} name
 * @param {number} age
 */
function greetJS(name, age) { }

// TS - typy v kódu, komentář vysvětluje "proč"
/**
 * Pozdraví uživatele a zaznamená do analytics
 */
function greetTS(name: string, age: number): void { }

Tip

💡 Best practices pro komentáře:

// ❌ Špatné - popisuje co kód dělá (zbytečné)
// Zvýší counter o 1
counter++;

// ✅ Dobré - vysvětluje proč
// Počítáme retry pokusy pro rate limiting
counter++;

💡 Komentuj "proč", ne "co":

// ❌ Zbytečný komentář
// Vytvoř nové pole
const numbers = [];

// ✅ Užitečný komentář
// Cache pro memoizaci - výrazně zrychluje opakované volání
const cache = new Map();

💡 TODO/FIXME značky:

// TODO: Přidat error handling
// FIXME: Memory leak při velkých datech
// HACK: Dočasné řešení - refaktorovat v v2.0
// NOTE: API změní formát od 1.1.2024
// OPTIMIZE: Použít binary search místo lineárního

💡 Dočasné vypnutí:

// console.log('Debug:', data);
// debugger;

// Pro větší bloky:
/*
console.log('Start');
const result = heavyOperation();
console.log('End:', result);
*/

Kvíz

Které výroky jsou pravdivé?

- Komentáře jsou ignor ované při běhu, nemají vliv na výkon

- /* komentář */ je správná syntaxe pro víceřádkové komentáře

- Komentáře jsou stále užitečné pro vysvětlení "proč", ne jen "co"

- IDE čte JSDoc a nabízí lepší autocomplete a nápovědu

🎯 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ě