Angular 4.3.1
Angular CLI 1.2.3
Typescript 2.3.4
Component Typescript file:
public saveName: string;
public overwrite: boolean;
Try *ngIf="!overwrite && !!saveName"
to cast saveName
to a boolean
The reason TypeScript gives for the error is roughly: you are using a string where you should be using a boolean.
The reason I think that it only happens in that circumstance is because if you have true || anything
only the first will be evaluated (because if the first is true the whole expression will true regardless of the rest)