title: Typechecking not working for generic string keys in Luau?
body: <p>I'm trying to create a dictionary data structure that contains several <code>CustomType</code> objects that can be associated with any string key.</p>
  <p>I figured I could just use <code>{[string]: CustomType}</code> as my dictionary type, like this:</p>
  <pre><code>--!strict
  type CustomType = {
      a: string,
      b: string
  }
  
  local dictionary: {[string]: CustomType} = {
      keyOne = { a = 'hello' }, -- should display type error ('b' field missing)
      keyTwo = { a = 'hello', b = 'world'} -- should be fine
  }
  </code></pre>
  <p>However, in the code snippet above no type error is shown in the code editor even though the <code>b</code> field is missing from <code>keyOne</code>. Yet, if I explicitly define the keys in the dictionary type definition, then it works as expected:</p>
  <pre><code>--!strict
  type CustomType = {
      a: string,
      b: string
  }
  
  local dictionary: {keyOne: CustomType, keyTwo: CustomType} = {
      keyOne = { a = 'hello' }, -- displays type error
      keyTwo = { a = 'hello', b = 'world'} -- is fine
  }
  </code></pre>
  <p>Why is this? <strong>I would like to enforce strict typechecking for all generic string keys without needing to explicitly define them in the dictionary type definition.</strong> Am I going about this the wrong way? Could this be a ROBLOX issue (since I am implementing this in the ROBLOX engine)?</p>
  <p>Any help would be greatly appreciated.</p>
  <p>Source/info about Luau typechecking: <a href="https://luau-lang.org/typecheck" rel="nofollow noreferrer">https://luau-lang.org/typecheck</a></p>