Description
--- @Class Emit
--- @field on fun(eventName: string, cb: function)
--- @field on fun(eventName: '"died"', cb: fun(i: integer))
--- @field on fun(eventName: '"won"', cb: fun(s: string))
local emit = {}
emit:on("died", function (i)
-- should be i: integer
end)
':' will not work until I change ':' to '.', or add self in field define.
---@Class GameScript.MusicSelect
---@field Listen fun(self,msgName:string,cb:function,holder)
---@field Listen fun(self,msgName:"SEL_ALPHA",cb:fun(alpha:string),holder)
---@field Listen fun(self,msgName:"LEVEL_CHANGE",cb:fun(level:integer),holder)
---@field Listen fun(self,msgName:"SELECT_MUSIC",cb:fun(fileName:string),holder)
---@field BroadCast fun(self,msgName:string)
---@field BroadCast fun(self,msgName:"LEVEL_CHANGE",level:integer)
---@field BroadCast fun(self,msgName:"SEL_ALPHA",alpha:string)
when I call BroadCast the msgName will auto comple but the arg list not, I have to press down arrow to select my overload fun..