title: Typescript | Decorator doesn't seem to be registering properly
body: <p>I have a problem currently when working with Typescript decorators within Angular.</p>
  
  <p>I am trying to make a simple decorator which you can specify what type of input a control is or select options etc, the idea behind it is I am able to build a form just from a model.</p>
  
  <pre><code>export class UserForm {
      @Input('text')
      @Required()
      firstName: string;
  
      @Input('text')
      @Required()
      lastName: string;
  }
  </code></pre>
  
  <p>The required decorator works perfectly and I have absolutely no issues with it but for whatever reason the @Input() directive deosn't seem to work. (I know the name clashes with Angulars Input but I am 100% ensuring I am using the correct one). Currently I have a very basic decorator...</p>
  
  <pre><code>export const Input = (inputType: string) =&gt; {
      return (): PropertyDecorator =&gt; {
          return (target: object, propertyKey: string) =&gt; {
              console.log(inputType, target, propertyKey);
          };
      };
  };
  </code></pre>
  
  <p>whenever I do this I get the following error</p>
  
  <blockquote>
    <p>'Input('text')' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@Input('text')()'?</p>
  </blockquote>
  
  <p>I literally have no idea why this is happening, I have tried putting in a function at the top of the file and not exporting.</p>
  
  <p>Also worth mentioning this is done within a Angular library setup and I did read somewhere that it's to do with the typings, but I wasn't too sure because required works.</p>