# TypeProvider class abstract

Interface providing access to Type information with optional source context.

TypeProvider abstracts the source of type information, allowing ResolvableType to work with types that come from various sources like fields, method parameters, return types, etc. This provides flexibility in how type information is obtained and allows for lazy type resolution.

Example Implementation:

    class FieldTypeProvider implements TypeProvider {
      final FieldDeclaration _field;

      FieldTypeProvider(this._field);

      @override
      Type? getType() => _field.getType();

      @override
      Object? getSource() => _field;
    }

## Constructors

TypeProvider.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

getSource() → Object?
  Returns the source object that provides the type information.
getType() → Type?
  Returns the Type provided by this TypeProvider.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

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