ts-check: na cestě od JavaScriptu k TypeScriptu

Pokud svůj javascriptový kód obohatíte o JSDoc minimálně na úrovni dokumnetace funkcí, pak pomocí direktivy // @ts-check získáte typovou kontrolu, kterou nabízí například TypeScript. Jasně, že na tak kompletní, ale jakýsi posun k typovosti tu je.

Pokud pak jeětě použijete /** @type {number} */ nad řádkem s deklarací proměnné, získáte i statické typování na úrovni jendotlivých proměnných.

Nutno dodat, že tohle funguje jen v MS Visual Code editoru… Ale kdo dnes pro kódování v JS, nebo TS používá něco jiného 🙂
Direktiva ts-check musí být na začátku JS souboru.


// @ts-check

/**
 * Soucet 2 cisel.
 * @param {number} cislo1
 * @param {number} cislo2
 * @return {number} funkce vraci soucet dvou cisel
 */
function soucet(cislo1, cislo2) {
    return cislo1 + cislo2;
}

/** @type {number} */
const a = 1;

const b = '2';

soucet(a, b);

a = 'pepa';

Při volání funkce pak editor korektně podtrhne nevalidní parametr, který je jiného typu, než bylo specifikováno v JSDoc komentáři.

Editor pak i proměnou okomentovanou specifikací typu pak korektně označí chybou v místech, kde se snažíte přiřadit nekorektní hodnotu.