title: Is possible to avoid or warn overriding a method or property of an inherited class on TypeScript?
body: <p>Is there any way to avoid this:</p>
  
  <pre><code>class a {
      p:any;
      constructor() {
      }
      m() {
      }
  }
  class b extends a {
      p:any;
      constructor() {
          super();
      }
      m() {
      }
  }
  </code></pre>
  
  <p>I know that I can create private properties, but to access them externally I need to create a public method, so the problem is still there, as methods are "overridable" without any warning, but I don't find any options to avoid that.</p>
  
  <p>I can also create setters and getters, but the same applies.</p>