Skip to content

Тайпинги в JS без TS

Чтобы аннотировать типы переменных, необязательно ставить TypeScript, можно юзать jsdoc-type:

/** @type {('yes'|'no'|'???')} */
let decision = '???';

Также можно аннотировать функции, используя @param и @returns:

/**
 * Returns the sum of a and b
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function sum(a, b) {
    return a + b;
}

Можно создавать и целые определения типов (аналог type в TS):

/**
 * @typedef {('yes'|'no'|'???')} Decision
 */

/** @type {Decision} */
let decision = '???';