# TypeDeclaration class abstract

Represents metadata information about any Dart type — including classes, enums, typedefs, generic types like `List<int>`, and even nullable types.

You can use this class to:

- Introspect type names and type arguments
- Determine type kind (list, map, class, enum, etc.)
- Resolve the declaration (e.g., to ClassDeclaration or EnumDeclaration)
- Perform runtime type comparisons or assignability checks

### Example

    final type = reflector.reflectType(MyClass);
    print(type.getName()); // MyClass

    if (type.asClassType() != null) {
      final reflectedClass = type.asClassType()!;
      print(reflectedClass.getConstructors());
    }

Inheritance
  - Object
  - Declaration
  - EntityDeclaration
  - TypeDeclaration
Available extensions
  - TypeDeclarationExtension

## Constructors

TypeDeclaration.new()
  Represents metadata information about any Dart type — including classes, enums, typedefs, generic types like `List<int>`, and even nullable types.
  const

## Properties

hashCode → int
  The hash code for this object.
  no setter override
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

asClass() → ClassDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to ClassDeclaration if possible.
asEnum() → EnumDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to EnumDeclaration if possible.
asMixin() → MixinDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to MixinDeclaration if possible.
asRecord() → RecordDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to RecordDeclaration if possible.
asTypedef() → TypedefDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypedefDeclaration if possible.
asTypeVariable() → TypeVariableDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypeVariableDeclaration if possible.
getDartType() → DartType?
  The analyzer DartType of the entity for enhanced type operations.
  inherited
getDebugIdentifier() → String
  The debug identifier for the entity.
  override
getDeclaration() → SourceDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Resolves the most specific declaration type.
getElement() → Element?
  The analyzer element associated with this declaration.
  inherited
getInterfaces() → List<LinkDeclaration>
  Returns the list of interfaces this type implements.
getIsNullable() → bool
  Returns `true` if the type is nullable, such as `'String?'` or `'int?'`.
getIsPublic() → bool
  Checks if this declaration is a public declaration.
  inherited
getIsSynthetic() → bool
  Checks if a declaration is a synthetic declaration.
  inherited
getKind() → TypeKind
  Returns the TypeKind of this type, indicating whether it is a class, enum, mixin, etc.
getMixins() → List<LinkDeclaration>
  Returns the list of mixin identities that are applied to this type.
getName() → String
  Gets the name of the declared element.
  inherited
getPackageUri() → String
  Returns the package URI where this type is declared.
getQualifiedName() → String
  Returns the fully qualified name of this type.
getSimpleName() → String
  Returns the simple name of the type without the package or library URI.
getSuperClass() → LinkDeclaration?
  Returns the direct superclass of this type.
getType() → Type
  Gets the runtime type of the declared element.
  inherited
getTypeArguments() → List<LinkDeclaration>
  Returns the list of type arguments for generic types.
hasAnalyzerSupport() → bool
  Returns true if this declaration has analyzer information available.
  inherited
isAssignableFrom(TypeDeclaration other) → bool
  Type Assignability Table:
isAssignableTo(TypeDeclaration target) → bool
  Type Assignability Table:
isGeneric() → bool
  Check if this is a generic type.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toJson() → Map<String, Object>
  Returns a JSON representation of this entity.
  override
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  override