


# Union class













## Constructors

[Union](../package-fidl_fidl/Union/Union.md) ()

  _const_ 


## Properties

##### [$data](../package-fidl_fidl/Union/$data.md) &#8594; Object



  
_read-only_



##### [$ordinal](../package-fidl_fidl/Union/$ordinal.md) &#8594; int



  
_read-only_



##### [hashCode](../package-fidl_fidl/Union/hashCode.md) &#8594; int



The hash code for this object.  
_read-only, override_



##### [runtimeType](../package-fidl_fidl/Union/runtimeType.md) &#8594; Type



A representation of the runtime type of the object.  
_read-only, inherited_





## Methods

##### [noSuchMethod](../package-fidl_fidl/Union/noSuchMethod.md)(Invocation invocation) dynamic



Invoked when a non-existent method or property is accessed.  
_inherited_



##### [toString](../package-fidl_fidl/Union/toString.md)() String



A string representation of this object.  
_override_





## Operators

##### [operator ==](../package-fidl_fidl/Union/operator_equals.md)(dynamic other) bool



The equality operator.  
_override_















