What is the question mark for in a Typescript parameter name
<pre><code>export class Thread {
  id: string;
  lastMessage: Message;
  name: string;
  avatarSrc: string;

  constructor(id?: string,
              name?: string,
              avatarSrc?: string) {
    this.id = id || uuid();
    this.name = name;
    this.avatarSrc = avatarSrc;
  }
}
</code></pre>

<p>In <code>id?</code> what's the <code>?</code> for?</p>