Angular 6 ngbTypeahead filter of list of JSON objects

Please add formatter and as you are using object as data source for that you need to descontruct your object to get desired fields:

formatter = (x: {name: string}) => x.name;

HTML input element need one more attribute [inputFormatter]

<input id="typeahead-basic" type="text" class="form-control" [(ngModel)]="item.outputProjection.name" [ngbTypeahead]="search" [inputFormatter]="formatter" />

Add formatter to your code

formatter = (result: string) => result.name;

also, include formatter to the template.

<input id="typeahead-format" type="text" class="form-control" [(ngModel)]="model" [ngbTypeahead]="search" [resultFormatter]="formatter" />