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