2017-04-04 4 views
0

Dies ist eine rein documentation verwandte Frage, in Bezug auf JavaScript. Ich möchte ein Object erstellen, und einige seiner Felder werden andere Objects sein, und das in der Dokumentation angeben. (Ich verwende Visual Studio Code).JavaScript-Dokumentation des benutzerdefinierten Objekts

Hier ist eine einfache Beispieldeklaration eines Objekts.

/** 
* @type {Object.<string, number>} 
*/ 
var User = { 
    name, 
    id 
}; 

Welche in Dokumentation so aussehen sollte:

var User = { 
    name: string; 
    id: number; 
} 

Dies ist ein komplexeres Beispiel. Einige der Objekte Felder sind tatsächlich Anwenderobjekte

/** 
* @type {Object.<string, User>} 
*/ 
var Message = { 
    text, 
    from 
}; 

Dies ist, wie es in der Dokumentation erscheinen:

var Message = { 
    text: string; 
    from: { 
     name: string; 
     id: number; 
    }; 
} 

Dies wäre auch akzeptabel sein:

var Message = { 
    text: string; 
    from: User; 
} 

Aber Visual Studio Code zeigt:

var Message = { 
    text: string; 
    from: any; 
} 

Antwort

0

Ich habe es herausgefunden, ich brauchte nur @typedef.

Mithilfe von @typedef können Sie eine benutzerdefinierte Typdefinition erstellen. Um eine benutzerdefinierte Object zu erstellen, müssen Sie lediglich @typedef {{}} ausführen. Und fügen Sie alle Eigenschaften darin hinzu. Sobald der Typ definiert wurde, können Sie ihn auch in einem anderen @typedef verwenden.

So der Kommentar unten erstellt zwei neue Typen.

/** 
* @typedef {{ name: string, id: number }} User 
* @typedef {{ text: string, from: User }} Message 
*/ 

Jetzt brauche ich nur hinzufügen @type {User} und @type {Message} bzw.

/** @type {User} */ 
var User = { 
    name, 
    id 
}; 

/** @type {Message} */ 
var Message = { 
    text, 
    from 
}; 
Verwandte Themen