In JSDoc esiste la possibilità di documentare l'esatto tipi di contenuto dell'array like this:Document parametri di tipo generico in JSDOC
/** @param {Array.<MyClass>} myClasses An array of MyClass objects. */
TestClass.protoype.someMethod = function(myClasses){
myClasses[0].aMethodOnMyClass();
}
Questo rende completamento del codice in IDE come WebStorm effettivamente fornire le informazioni tipo giusto dopo la [0].
. Funziona bene per il tipo di array, tuttavia ho i miei tipi di raccolta personali in cui vorrei utilizzare anche questa funzione. Il problema è che non riesco a trovare la sintassi corretta (forse perché non ce ne sono ancora). Mi piacerebbe essere in grado di dichiarare la mia classe in qualche modo simile a questo:
/**
* @typeparam {T} the type parameter
* @constructor {Test2.<T>}
* */
Test2 = function(){};
/**
* @returns {T} a value of type T, where T is the generic type parameter of Test2
*/
Test2.prototype.getGenericValue = function(){}
Questa sintassi o funzionalità non funziona con il mio IDE e non è elencato here, quindi mi chiedo se esiste una sintassi per questo uso- caso, sia per WebStorm che per qualsiasi altro strumento di authoring JS.
Grazie, ho appena trovato questo fuori me stesso da [questo problema YouTrack] (http://youtrack.jetbrains.com/issue/WEB- 1208) e [questo changeset del compilatore di chiusura] (https://code.google.com/p/closure-compiler/source/detail?spec=svn64d22457ddca24b07370f711276a449273bd6330&r=0eb41cabc9ba5463e3a34ea2fd900a8dd54f2136). C'è supporto per questo a livello di classe? I miei test indicano che questo funziona solo per "parametri di tipo locale della funzione". – Sebastian