title: What is the correct way to use Validators.required True?
body: <p>I'm not able to properly validate the checkbox, what I'm trying to do is the following:</p>
  <p>The checkbox should be selected as the default, so the value will be <code>true</code> (boolean), if the user deselects the value it will be <code>false</code> (boolean).</p>
  <p>With these results I activate the checklist and also make other business rules with the validated form.</p>
  <p>What am I doing wrong?</p>
  <p><strong>FORM COMPONENT</strong></p>
  <pre><code>@Component({
    selector: 'app-contract-form',
    template: `
      &lt;app-form [class]=&quot;'flex__display align__items__center bg__color__red__light'&quot; [fmGroup]=&quot;contractForm&quot;&gt;
        &lt;app-input
          (onclick)=&quot;sendValue()&quot;
          [class]=&quot;'cursor__pointer height__rem__2 width__rem__2 margin__xy__2'&quot;
          [fmControl]=&quot;contractForm.controls.checkbox&quot;
          [type]=&quot;'checkbox'&quot;
          [checked]=&quot;checkboxValue&quot;
        &gt;
        &lt;/app-input&gt;
  {{contractForm.controls.checkbox.valid| json}}
  {{contractForm.controls.checkbox.errors| json}}
        &lt;app-span&gt;
          Declaro que conheço e concordo com as
          &lt;app-span [class]=&quot;'cursor__pointer text__color__blue__dark text__decoration__underline'&quot;&gt;
            Cláusulas Gerais do Contrato.
          &lt;/app-span&gt;
        &lt;/app-span&gt;
      &lt;/app-form&gt;
    `,
  })
  export class ContractFormComponent implements OnInit {
    @Output() clauseClick = new EventEmitter&lt;IContractFormValue&gt;();
    @Input() protected set setDisabledForm(isDisabled: boolean) {
      isDisabled ? this.contractForm.controls.checkbox.disable() : this.contractForm.controls.checkbox.enable();
    }
    contractForm!: FormGroup;
  
    constructor(protected readonly formBuilder: FormBuilder) {
      this.contractForm = formBuilder.group({
        checkbox: formBuilder.control(true, Validators.requiredTrue)
      });
    }
  
    ngOnInit() {}
  
    get checkboxValue(): boolean {
      return Boolean(this.contractForm.controls.checkbox.value);
    }
  
    sendValue(): void {
      this.contractForm.controls.checkbox.patchValue(!this.checkboxValue);
      this.clauseClick.emit({ isAccepted: this.checkboxValue });
    }
  }
  </code></pre>
  <p><strong>LOGIN FORM</strong></p>
  <pre><code>@Component({
    selector: 'app-input',
    template: `
      &lt;input
        (click)=&quot;onclick.emit($event)&quot;
        [formControl]=&quot;fmControl&quot;
        [class]=&quot;class&quot;
        [type]=&quot;type&quot;
        [placeholder]=&quot;placeholder&quot;
        [autocomplete]=&quot;autocomplete&quot;
        [minLength]=&quot;minlength&quot;
        [maxLength]=&quot;maxlength&quot;
        [readonly]=&quot;readonly&quot;
        [autofocus]=&quot;autofocus&quot;
        [checked]=&quot;checked&quot;
        [required]=&quot;required&quot;
      &gt;
    `,
    styles: [
      `
        input {
          width: 100%;
        }
      `,
    ],
  })
  export class InputComponent implements OnInit {
    @Output() onclick = new EventEmitter&lt;MouseEvent&gt;();
    @Input() fmControl!: FormControl;
    @Input() class = '';
    @Input() type = 'text';
    @Input() placeholder = '';
    @Input() autocomplete = 'on';
    @Input() minlength = 1;
    @Input() maxlength = 524288;
    @Input() readonly = false;
    @Input() autofocus = false;
    @Input() checked = false;
    @Input() required = true;
  
    constructor() {}
  
    ngOnInit() {}
  }
  </code></pre>