JSDoc: как описать переменную как конструктор класса?

#javascript #class #documentation #jsdoc

#javascript #класс #Документация #jsdoc

Вопрос:

Я назначаю функцию конструктора класса своей переменной clazz . Новый экземпляр inst является экземпляром SomeClass и описывается как @type {SomeClass} с помощью JSDoc:

 class SomeClass {}

/** @type {???} */
const clazz = SomeClass;

/** @type {SomeClass} */
const inst = new clazz();
 

Как я могу описать clazz переменную с помощью JSDoc?

Ответ №1:

IDEA понимает эту форму: @type {typeof SomeClass} :

 class SomeClass {
    static NAME = 'name'
}

/** @type {typeof SomeClass} */
const clazz = SomeClass;

/** @type {SomeClass} */
const inst = new clazz();
const staticName = clazz.NAME; // IDEA autocomplete is available here