# typedef ClassType

#### package haxe.macro

#### import haxe.macro.Type

Available on Neko

Represents a class type.

### Properties

###

`constructor:Null<Ref<ClassField>>`

The constructor of the class, if available.

###

`doc:Null<String>`

The associated documentation of the class field.

###

`fields:Ref<Array<ClassField>>`

The member fields of the class.

###

`init:Null<TypedExpr>`

The `__init__` expression of the class, if available.

###

`interfaces:Array<{t:Ref<ClassType>, params:Array<Type>}>`

The implemented interfaces and their type parameters.

###

`isExtern:Bool`

Whether or not the type is extern.

###

`isInterface:Bool`

If true the type is an interface, otherwise it is a class.

###

`isPrivate:Bool`

Whether or not the type is private.

###

`kind:ClassKind`

The kind of the class.

###

`meta:MetaAccess`

The metadata of the type.

###

`module:String`

The module name of the type, which might be different.

###

`name:String`

The name of the type.

###

`overrides:Array<Ref<ClassField>>`

The list of fields that have override status.

###

`pack:Array<String>`

The package of the type.

###

`params:Array<TypeParameter>`

The type parameters of the type.

###

`pos:Position`

The position of the type.

###

`statics:Ref<Array<ClassField>>`

The static fields of the class.

###

`superClass:Null<{t:Ref<ClassType>, params:Array<Type>}>`

The parent class and its type parameters, if available.

###

`exclude ():Void`

Allows excluding the type from compilation.