title: Naming convention for class properties in TypeScript
body: <p>According to the <a href="https://angular.io/styleguide#!#03-04" rel="noreferrer">offical style guide</a> you should</p>
  <blockquote>
  <p>Avoid prefixing private properties and methods with an underscore.</p>
  </blockquote>
  <p>As I come from a Java background, I usually would just use the <code>this</code> keyword:</p>
  <pre><code>export default class Device {
      private id: string;
  
      constructor(id: string) {
          this.id = id;
      }
  
      public get id(): string { // [ts] Duplicate identifier 'id'.
          return this.id;
      }
  
      public set id(value: string) { // [ts] Duplicate identifier 'id'.
          this.id = value;
      }
  }
  </code></pre>
  <p>But the TypeScript compiler complains: <strong>[ts] Duplicate identifier 'id'.</strong></p>
  <p>Is there a convention or best practice for parameter naming in a TypeScript constructor?</p>
  <p>Using the <strong>get</strong> and <strong>set</strong> property of TypeScript produces the error.</p>
  <p>Is there a way to follow the style guide and also use the get/set properties of TypeScript?</p>