```lua ---@type { v: integer }[] _ = { { v = "" }, --- b: integer - Cannot assign `string` to `integer`. } ---@type { [integer]: fun(v: integer) } _ = { [2] = function(v) _ = v --- b: integer end, function(v) _ = v --- b: any ??? end, } ---@type fun(v: integer)[] _ = { [2] = function(v) _ = v --- b: any end, function(v) _ = v --- v: any ??? end, } ``` I wish the last option would work, or at least without `[2]` in `{ [integer]: fun() }`