Как определить нативный класс в jsdoc - PullRequest
0 голосов
/ 10 февраля 2019

Я пишу модулю, что одна из функций должна возвращать экземпляр HTMLCanvasElement или OffscreenCanvas, если доступно.

Для кода Visual Studio OffscreenCanvas не определено.

Какопределить класс, используя только комментарии jsdoc?(без написания JavaScript за пределами блока комментариев)

Например:

/**
* @classdef OffscreenCanvas(width,height)
* @param {number} width
* @param {number} height
* @property {number} width
* @property {number} height
**/

Я пытался использовать многие подходы из документации jsdoc, например, @see, @class, @typedef но без хороших результатов.

/**
 * @type {(HTMLCanvasElement|OffscreenCanvas)}
 */
const sharedCanvas = createOffscreenCanvas();
export function getSharedCanvas() {
    return sharedCanvas;
}
/**
 * 
 * @param {number} width 
 * @param {number} height 
 * @return {(HTMLCanvasElement|OffscreenCanvas)}
 */
export function createOffscreenCanvas(width = 200, height = 200) {
    if (OffscreenCanvas) {
        return new OffscreenCanvas(width, height);
    }
    let c = document.createElement('canvas');
    c.width = width;
    c.height = height;
    return c;
}

Идеальным решением было бы, если бы createOffscreenCanvas показывал описание:

function createOffscreenCanvas(width?: number, height?: number): HTMLCanvasElement | OffscreenCanvas

, но сейчас он показывает

function createOffscreenCanvas(width?: number, height?: number): any
...