Represents a class type.

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

The parent class and its type parameters, if available.

statics:Ref<Array<ClassField>>

The static fields of the class.

pos:Position

The position of the type.

params:Array<TypeParameter>

The type parameters of the type.

pack:Array<String>

The package of the type.

overrides:Array<Ref<ClassField>>

The list of fields that have override status.

name:String

The name of the type.

module:String

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

meta:MetaAccess

The metadata of the type.

kind:ClassKind

The kind of the class.

isPrivate:Bool

Whether or not the type is private.

isInterface:Bool

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

isFinal:Bool

If true the class is final and cannot be extended.

isExtern:Bool

Whether or not the type is extern.

isAbstract:Bool

If true the class is abstract and cannot be instantiated directly.

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

The implemented interfaces and their type parameters.

init:Null<TypedExpr>

The __init__ expression of the class, if available.

fields:Ref<Array<ClassField>>

The member fields of the class.

exclude():Void

Allows excluding the type from compilation.

doc:Null<String>

The associated documentation of the class field.

constructor:Null<Ref<ClassField>>

The constructor of the class, if available.