web-dev-qa-db-ja.com

JsDocを「混合」タイプにする方法は?

簡単な質問ですが、その「混合タイプ」を文書化するにはどうすればよいですか? {null|undefined|String|Number|Object}のようなすべての可能なタイプをリストするだけで、1つが欠落していることに気づき、非常に複雑になる可能性があることを私は知っています。 Mixedキーワードを使用してみましたが、WebStormなどの多くのIDEでエラーがポップアップ表示されます。

31
Tower

私はそれを行う方法を見つけました:

/**
 * @param {*} foo
 */
function bar(foo) {}
56
Tower

使用{}

http://usejsdoc.org/tags-type.html からの例があります:

プロパティ 'a'(数値)、 'b'(文字列)および 'c'(任意のタイプ)を持つ 'myObj'というオブジェクト。

{{a: number, b: string, c}} myObj
// or:
{Object} myObj
{number} myObj.a
{string} myObj.b
{} myObj.c
2
Dmitry

JSDocでは、さまざまな方法で値を記述することができます。たとえば、次のタグを使用します@type@param@return。 「?」を使用してオプションの値を指定できます。これが例です

    /**
     * Returns string or null
     *
     * @param {?string} nullableStringArgument
     *
     * @return {?string}
     */
    function returnNullableString (nullableStringArgument = null) {
        /** @type {?string} */
        const nullableString = [null, 'string'][Math.floor(Math.random() * 2)];

        return nullableString;
    }
0
Daniel Abyan