Expected 2 arguments, but got 1.ts(2554) core.d.ts(8064, 47): An argument for 'opts' was not provided
That is because of breaking change in new Angular. You need to pass like below
@ViewChild("password", { static: true }) password: ElementRef;
@ViewChild("confirmPassword", { static: true }) confirmPassword: ElementRef;
A new static flag has been introduced to not break existing applications, so if you want to keep the old behavior even when you’ll switch to Ivy, you can write:
@ViewChild('password', { static: true }) static: ElementRef<HTMLDivElement>;
You can further read here : https://angular.io/api/core/ViewChild#description