You can combine validators using Validators.compose()
this.username = new Control('',
Validators.compose(
[Validators.minLength(5), Validators.required]));
for async validators use
this.username = new Control('', null,
Validators.composeAsync(
[someAsyncValidator, otherAsyncValidator]));
There are open issues with async validators, especially sync validators combined with async validators don’t work
- https://github.com/angular/angular/issues/8923
- https://github.com/angular/angular/issues/1068
To make sync validators work with async validators, wrap the sync validators in promises and compose them as async valdiators like
this.username = new Control('', null,
Validators.composeAsync([
(control:Control) => Promise.resolve(Validators.minLength(5)(control)),
(control:Control) => Promise.resolve(Validators.required(control)),
someAsyncValidator, otherAsyncValidator
]));