# TypeVariableDeclaration class abstract

Represents a reflected type variable, such as `T` in a generic class declaration like `class MyClass<T extends num>`.

This abstraction provides access to the upper bound of the type variable, if any. This is useful in scenarios involving reflection, serialization, or code generation where generic type constraints must be analyzed.

## Example

Suppose you reflect on a class like:

    class Box<T extends num> {}

A TypeVariableDeclaration for `T` would return an upper bound representing `num`.

Inheritance
  - Object
  - Declaration
  - EntityDeclaration
  - TypeDeclaration
  - TypeVariableDeclaration
Implemented types
  - SourceDeclaration
Available extensions
  - TypeDeclarationExtension

## Constructors

TypeVariableDeclaration.new()

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
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.
getAnnotations() → List<AnnotationDeclaration>
  Returns all annotations applied to this declaration.
  inherited
getDartType() → DartType?
  The analyzer DartType of the entity for enhanced type operations.
  inherited
getDebugIdentifier() → String
  The debug identifier for the entity.
  inherited
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.
  inherited
getIsNullable() → bool
  Returns `true` if the type is nullable, such as `'String?'` or `'int?'`.
  inherited
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.
  inherited
getMixins() → List<LinkDeclaration>
  Returns the list of mixin identities that are applied to this type.
  inherited
getName() → String
  Gets the name of the declared element.
  inherited
getPackageUri() → String
  Returns the package URI where this type is declared.
  inherited
getParentLibrary() → LibraryDeclaration
  Returns the LibraryDeclaration in which this declaration is defined.
  inherited
getQualifiedName() → String
  Returns the fully qualified name of this type.
  inherited
getSimpleName() → String
  Returns the simple name of the type without the package or library URI.
  inherited
getSourceLocation() → Uri?
  Returns the source code location (e.g., file path or URI) where this declaration is defined, or `null` if not available in the current reflection context.
  inherited
getSuperClass() → LinkDeclaration?
  Returns the direct superclass of this type.
  inherited
getType() → Type
  Gets the runtime type of the declared element.
  inherited
getTypeArguments() → List<LinkDeclaration>
  Returns the list of type arguments for generic types.
  inherited
getUpperBound() → TypeDeclaration?
  The upper bound of the type variable, or `null` if unbounded.
getVariance() → TypeVariance
  Returns the variance of the type parameter.
hasAnalyzerSupport() → bool
  Returns true if this declaration has analyzer information available.
  inherited
isAssignableFrom(TypeDeclaration other) → bool
  Type Assignability Table:
  inherited
isAssignableTo(TypeDeclaration target) → bool
  Type Assignability Table:
  inherited
isGeneric() → bool
  Check if this is a generic type.
  inherited
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.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

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