# Why do I get a TypeError: requires a single type

The full error message looks something like this:

    TypeError: typing.Optional requires a single type. Got Field(name=None,type=None,default=<dataclasses._MISSING_TYPE object at 0x7f79f4b0d700>,default_facto.

This error means the typing annotations for a model are ambiguous because they collide with a class field. If you use Python 3.7 or later, you can set `PostponedAnnotations` to `true` in the GeneratorOutput section of the generator config to solve this issue. This will enable Postponed Evaluations of Annotations (PEP 563) and the generated bindings will be able to be imported without errors. This feature is not available for Python 3.6 because `annotations` were added to the `__future__` module in Python 3.7.0b1.

Example

    from __future__ import annotations
    from dataclasses import dataclass, field
    from typing import Optional
    from tests.fixtures.annotations.units import unit

    __NAMESPACE__ = "http://domain.org/schema/model"

    @dataclass
    class Measurement:
        value: Optional[float] = field(
            default=None,
            metadata={
                "required": True,
            }
        )
        unit: Optional[unit] = field(
            default=None,
            metadata={
                "type": "Attribute",
            }
        )

    @dataclass
    class Weight(Measurement):
        class Meta:
            namespace = "http://domain.org/schema/model"