title: Python equivalent of Typescript interface
body: <p>Recently I have been working with Typescript a lot, it allows to express things like:</p>
  
  <pre><code>interface Address {
      street: string;
      housenumber: number;
      housenumberPostfix?: string;
  }
  
  interface Person {
      name: string;
      adresses: Address[]
  }
  
  const person: Person = {
      name: 'Joe',
      adresses: [
          { street: 'Sesame', housenumber: 1 },
          { street: 'Baker', housenumber: 221, housenumberPostfix: 'b' }
      ]
  }
  </code></pre>
  
  <p>Pretty concise and giving all the luxuries as type checking and code completion while coding with Persons.</p>
  
  <p>How is this done in Python?</p>
  
  <p>I have been looking at Mypy and ABC but did not yet succeed in finding the pythonic way to do something similar as the above (my attempts resulted in way too much boilerplate to my taste).</p>