Тайпинги в 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 = '???';