title: Angular @ViewChild() error: Expected 2 arguments, but got 1
body: <p>When trying ViewChild I am getting the error. Error is "An argument for 'opts' was not provided."</p>
  
  <p>Both @ViewChild is giving the error.</p>
  
  <pre class="lang-js prettyprint-override"><code>import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';
  import { Ingredient } from 'src/app/shared/ingredient.model';
  
  @Component({
    selector: 'app-shopping-edit',
    templateUrl: './shopping-edit.component.html',
    styleUrls: ['./shopping-edit.component.css']
  })
  export class ShoppingEditComponent implements OnInit {
  
  @ViewChild('nameInput') nameInputRef: ElementRef;
  @ViewChild('amountInput') amountInputRef: ElementRef;
  @Output() ingredientAdded = new EventEmitter&lt;Ingredient&gt;();
    constructor() {}
  
    ngOnInit() {
    }
  
    onAddItem() {
      const ingName = this.nameInputRef.nativeElement.value;
      const ingAmount = this.amountInputRef.nativeElement.value;
      const newIngredient = new Ingredient(ingName, ingAmount);
      this.ingredientAdded.emit(newIngredient);
    }
  
  }
  </code></pre>
  
  <blockquote>
    <p>ts(11,2): error TS2554: Expected 2 arguments, but got 1.</p>
  </blockquote>