В JSDoc существует возможность документировать точные типы содержимого массива like this:документа в JSDoc
/** @param {Array.<MyClass>} myClasses An array of MyClass objects. */
TestClass.protoype.someMethod = function(myClasses){
myClasses[0].aMethodOnMyClass();
}
Это делает код завершение в Иде как WebStorm фактически предоставляет информацию правильного типа после [0].
. Это хорошо работает для типа Array, однако у меня есть свои собственные типы коллекций, в которых я также хотел бы использовать эту функцию. Проблема в том, что я не могу найти правильный синтаксис (возможно, потому что его нет). Я хотел бы, чтобы иметь возможность объявить свой класс как-то вроде этого:
/**
* @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(){}
Этот синтаксис или функция не работает с моей IDE и не указано here, поэтому мне интересно, есть ли синтаксис этой полезности либо для WebStorm, либо для любого другого инструмента создания JS.
Спасибо, я только узнал об этом сам из [этого вопроса YouTrack] (http://youtrack.jetbrains.com/issue/WEB- 1208) и [этот набор компиляторов Closure] (https://code.google.com/p/closure-compiler/source/detail?spec=svn64d22457ddca24b07370f711276a449273bd6330&r=0eb41cabc9ba5463e3a34ea2fd900a8dd54f2136). Есть ли поддержка для этого на уровне класса? Мои тесты показывают, что это работает только для «параметров локального типа функции». – Sebastian