在 JSDOC 和 WebStorm 中记录布尔类型的可选参数的正确方法是什么?

What is the correct way to document a optional parameter of type boolean in JSDOC and WebStorm?

我回顾了几个不同的 Stack Overflow 答案,它们让我走到了这一步。到目前为止,我已经尝试了以下方法。

    /**
     * Prints true, false or empty string
     * @param {boolean=} b
     */
    test = (b = '') => { // Initialized type string not assignable to variable type boolean
        console.log(`b = "${b}"`)
    }
    /**
     * Prints true, false or empty string
     * @param {boolean=} b
     */
    test = (b) => {
        // Initialized type string not assignable to variable type boolean
        if (typeof b !== 'boolean') b = ''
        console.log(`b = "${b}"`)
    }

我觉得正确的答案是抑制警告,但希望其他人有更好的答案。

在您的代码中,类型可以是 stringboolean,因此您需要在此处使用类型联合:

/**
     * Prints true, false or empty string
     * @param {(boolean|string)=} b
     */
    test = (b) => {
        // Initialized type string not assignable to variable type boolean
        if (typeof b !== 'boolean') b = ''
        console.log(`b = "${b}"`)
    }

https://jsdoc.app/tags-type.html