title: Instantiating a class with wrong value type variable passes check
body: <p>I have a class:</p>
  
  <pre><code>import { iFlowers } from "./iFlowers ";
  
  export default class flowers implements iFlowers {
   colorNumber: number;
   size: number;
  
   constructor(colorNr: number, size: number){
     this.colorNumber = colorNr;
     this.size = size;
   }
  }
  </code></pre>
  
  <p>where the interface is:</p>
  
  <pre><code>export interface iFlowers {
   colorNumber: number;
   size: number;
  }
  </code></pre>
  
  <p>and the object array list (it's named <code>testFlowers</code> in the method below) that I want to use is:</p>
  
  <pre><code>[{ 
   "colorNumber": 5,
   "size": 4
  },
  {
   "colorNumber": "44",
   "size": 12
  }]
  </code></pre>
  
  <p>To instantiate the object I try to do something like this:</p>
  
  <pre><code>const flowers = require("../../flowers").default;
  import { iFlowers } from "../../iFlowers";
  
  var someFunction (testFlowers: any) {
      for (var i=0; i &lt; testFlowers.length; i++)
         try {
           var data = new flowers(testFlowers[i].colorNumber, testFlowers[i].size);
         } 
         catch (err) {
           console.error("Data doesn't match format");
         }
  }
  </code></pre>
  
  <p>It doesn't enter the catch block! I just can't figure out why...</p>