gpt4 book ai didi

javascript - 用于传递枚举的谷歌闭包编译器注释

转载 作者:行者123 更新时间:2023-11-30 16:00:16 25 4
gpt4 key购买 nike

我似乎找不到正确的闭包编译器注释来传递枚举映射。

例如:给定 EventTargets AB 具有:

/** @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 at the client.

最佳答案

MYNS.A.EventType是一个对象,其键是字符串,其值是该枚举的成员。所以你可以写

/** @type {!Object<string, MYNS.A.EventType>} */ var obj = MYNS.A.EventType

它会进行类型检查。对于 B 也是如此。所以您返回的对象文字的类型是记录类型,{A: !Object<string, MYNS.A.EventType>, B: !Object<string, MYNS.B.EventType>}

关于javascript - 用于传递枚举的谷歌闭包编译器注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37884556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com