有没有办法在宏中的联合类型中迭代类型?这是我的尝试:
alias MyType = Int32 | String
{% for type in MyType.union_types %} #=> undefined method 'union_types' for TypeNode of type MyType (must be a union type)
...
{% end %}
我尝试使用TypeNode#union_types方法,但似乎MyType
根本不被视为联合类型:
{% puts MyType.union? %} #=> false
答案 0 :(得分:1)
看起来目前无法在宏中使用复杂的别名类型。这是一个错误,请与您的示例碰撞crystal-lang/crystal#4301。
答案 1 :(得分:0)
也许typeof
方法可以帮助您
alias MyType = Int32 | String
puts typeof(MyType) # => (Int32 | String):Class