title: Make Swift JSONDecoder not fail when type on key not match
body: <p>I have one simple struct like that:</p>
  
  <pre><code>struct Object: Codable {
      let year: Int?
      …
  }
  </code></pre>
  
  <p>It's fine when decode JSON like <code>{ "year": 10, … }</code> or no <code>year</code> in JSON.<br>
  But will fail decode when JSON has different type on key: <code>{ "year": "maybe string value" }</code></p>
  
  <p>How could I not fail decode process when type not match on the Optional  property?</p>
  
  <p>Thanks.</p>