title: type check dynamic properties flowtype
body: <p>I am trying to add dynamic properties to an object and have flow type check them:</p>
  
  <p>my function would be like this:</p>
  
  <pre><code>function defineStuff(obj:MyType, keys:string[]):??? {
      keys.forEach(function(key) {
          Object.defineProperty(obj, key, {get:function(){....}});
          obj["Add"+key] = function(value) {....};
          obj["Remove"+key] = function(value) {....};
      }
      return obj;
  }
  </code></pre>
  
  <p>I would like to be able to do stuff like this;</p>
  
  <pre><code>var obj : MyType = fetchMyObj();
  defineStuff(obj, ["Thing", "OtherThing"]);
  var thing = obj.Thing;
  obj.AddOtherThing(10);
  </code></pre>
  
  <p>all dynamic properties type would be number</p>
  
  <p>is there a syntax for doing this in flow? (i.e. how to fill the ???)</p>