title: TypeScript compiles seemingly invalid variable type declaration
body: <p>I was declaring a class variable in TypeScript application (<code>typescript:3.2.4</code>, <code>tslint:5.14.0</code>) like so:</p>
  <pre><code>export class Foo {
  
    private bar: 137;
    
    ...
    
  }
  </code></pre>
  <p>This was a typo, I <em>meant</em> <code>private bar = 137</code>.</p>
  <p>My question is why did this compile, and why didn't TSLint give any warnings?</p>
  <p>At runtime, both the value and <code>typeof</code> were <code>undefined</code>. How was this being interpreted by the TypeScript compiler; what did it think I wanted? Is there any functional situation where the type of a variable could be a primitive value like <code>137</code>?</p>
  <h1>Additional Cases:</h1>
  <p>Similarly, the following <em>does</em> compile:</p>
  <pre><code>export class Foo {
  
    private bar: 'bar';
    
    ...
    
  }
  </code></pre>
  <p>The following <em>does not</em> compile:</p>
  <pre><code>export class Foo {
  
    private bar: 137 = 42;
    
    ...
    
  }
  </code></pre>
  <p>The compiler error is <code>error TS2322: Type '42' is not assignable to type '137'.</code></p>
  <p>What's going on here?</p>