Кажется, я не могу найти правильные аннотации компилятора закрытия, чтобы передать карту перечислений.
Например: заданы EventTargets A
, B
с:
/** @enum {string} */
MYNS.A.EventType = {EA : 'ea1'};
/** @enum {string} */
MYNS.B.EventType = {EB : 'eb2'};
У меня есть конструктор C
, который возвращает несколько типов событий:
/** @return {WHATSTHIS} */
C.prototype.getEventTypesAB = function() {
return {
A: MYNS.A.EventType,
B: MYNS.B.EventType
};
};
для использования позже:
goog.events.listen(parent, c.getEventTypesAB().A.EA, ...);
Я пробовал несколько вещей, таких как ниже, которые, я думаю, не работают, поскольку enum
не является type
, но у меня нет идей, как это аннотировать:
/** @typedef {{ A: MYNS.A.EventType, B: ... }} */
Я всегда получаю (ожидаемое) предупреждение компилятора: WARNING - Property EA never defined on String
на клиенте.