# Structural Typing
The structural typing is used to define the contract of an object.
Its compliance is based on its structure (the keys and their types), rather than its type or inheritance.
TypeDict:
```python
import typing
class UserTypeDict(typing.TypeDict):
id: int
name: str
email: str
```
This object is compliant with `UserTypeDict`:
```python
user_dict = {
'id': 1,
'name': 'John',
'email': '
[email protected]',
}
```
---
Bibliography:
- [Title - website.com](need bibliography)