# class Type

#### no package

Available on all platforms

The Haxe Reflection API allows retrieval of type information at runtime.

This class complements the more lightweight Reflect class, with a focus on class and enum instances.

See:

https://haxe.org/manual/types.html

https://haxe.org/manual/std-reflection.html

### Static methods

###

`staticcreateEmptyInstance<T> (cl:Class<T>):T`

Creates an instance of class `cl`.

This function guarantees that the class constructor is not called.

If `cl` is null, the result is unspecified.

###

`staticcreateEnum<T> (e:Enum<T>, constr:String, ?params:Array<Dynamic>):T`

Creates an instance of enum `e` by calling its constructor `constr` with arguments `params`.

If `e` or `constr` is null, or if enum `e` has no constructor named `constr`, or if the number of elements in `params` does not match the expected number of constructor arguments, or if any argument has an invalid type, the result is unspecified.

###

`staticcreateInstance<T> (cl:Class<T>, args:Array<Dynamic>):T`

Creates an instance of class `cl`, using `args` as arguments to the class constructor.

This function guarantees that the class constructor is called.

Default values of constructors arguments are not guaranteed to be taken into account.

If `cl` or `args` are null, or if the number of elements in `args` does not match the expected number of constructor arguments, or if any argument has an invalid type, or if `cl` has no own constructor, the result is unspecified.

In particular, default values of constructor arguments are not guaranteed to be taken into account.

###

`staticenumConstructor (e:EnumValue):String`

Available on Neko, macOS, Linux, Windows

Returns the constructor name of enum instance `e`.

The result String does not contain any constructor arguments.

If `e` is null, the result is unspecified.

###

`staticenumParameters (e:EnumValue):Array<Dynamic>`

Available on Neko, Android, Flash, iOS, macOS, Linux, Windows

Returns a list of the constructor arguments of enum instance `e`.

If `e` has no arguments, the result is [].

Otherwise the result are the values that were used as arguments to `e`, in the order of their declaration.

If `e` is null, the result is unspecified.

###

`staticgetClass<T> (o:T):Class<T>`

Available on Neko, Android, Flash, iOS, macOS, Linux, Windows

Returns the class of `o`, if `o` is a class instance.

If `o` is null or of a different type, null is returned.

In general, type parameter information cannot be obtained at runtime.

###

`staticgetClassName (c:Class<Dynamic>):String`

Returns the name of class `c`, including its path.

If `c` is inside a package, the package structure is returned dot- separated, with another dot separating the class name: `pack1.pack2.(...).packN.ClassName` If `c` is a sub-type of a Haxe module, that module is not part of the package structure.

If `c` has no package, the class name is returned.

If `c` is null, the result is unspecified.

The class name does not include any type parameters.

###

`staticgetEnum (o:EnumValue):Enum<Dynamic>`

Available on Neko, macOS, Linux, Windows

Returns the enum of enum instance `o`.

An enum instance is the result of using an enum constructor. Given an `enum Color { Red; }`, `getEnum(Red)` returns `Enum<Color>`.

If `o` is null, null is returned.

In general, type parameter information cannot be obtained at runtime.

###

`staticgetEnumConstructs (e:Enum<Dynamic>):Array<String>`

Available on Neko, Android, Flash, iOS, macOS, Linux, Windows

Returns a list of the names of all constructors of enum `e`.

The order of the constructor names in the returned Array is preserved from the original syntax.

If `c` is null, the result is unspecified.

###

`staticgetEnumName (e:Enum<Dynamic>):String`

Returns the name of enum `e`, including its path.

If `e` is inside a package, the package structure is returned dot- separated, with another dot separating the enum name: `pack1.pack2.(...).packN.EnumName` If `e` is a sub-type of a Haxe module, that module is not part of the package structure.

If `e` has no package, the enum name is returned.

If `e` is null, the result is unspecified.

The enum name does not include any type parameters.

###

`staticgetSuperClass (c:Class<Dynamic>):Class<Dynamic>`

Returns the super-class of class `c`.

If `c` has no super class, null is returned.

If `c` is null, the result is unspecified.

In general, type parameter information cannot be obtained at runtime.

###

`staticresolveClass (name:String):Class<Dynamic>`

Resolves a class by name.

If `name` is the path of an existing class, that class is returned.

Otherwise null is returned.

If `name` is null or the path to a different type, the result is unspecified.

The class name must not include any type parameters.

###

`staticresolveEnum (name:String):Enum<Dynamic>`

Resolves an enum by name.

If `name` is the path of an existing enum, that enum is returned.

Otherwise null is returned.

If `name` is null the result is unspecified.

If `name` is the path to a different type, null is returned.

The enum name must not include any type parameters.

###

`statictypeof (v:Dynamic):ValueType`

Returns the runtime type of value `v`.

The result corresponds to the type `v` has at runtime, which may vary per platform. Assumptions regarding this should be minimized to avoid surprises.