When you write 
(click)="doSomething()"
You want to say 
  Launch the method doSomething when I click on this
But what you actually say is 
  Please Angular, compile this code so that when I click on this, it launches doSomething
Because as you may know, you're writing Typescript, not Javascript. So your code will be compiled to be served, thus transforming this into 
onclick="doSomething()"
BUT WAIT, THERE'S MORE
When you compile your code, it's actually minified and uglified. So this will give you something along the lines of 
onclick="a()"
And thus, making you lose any logic behind this. 
So what's the solution ?
The solution is to bind the click event to a global function. There's two ways of doing this : 
- Function in your component (use it if you want to use logic from your component)
- Global function (use it if you want this function to be called in several components)
I'll explain the first use-case, for the second I'll make it short : create a JS file as an asset, put your function in it, and call it on click. 
For the second one, it's a bit tricky. 
First, inject ngZone into your component : this allows you to handle code outside of Angular
constructor(private zone: NgZone) {}
Then, create a global function (I'll make it Typescript and linting compliant)
ngOnInit() {
  this.zone.run(() => {
    window['doSomething'] = () => {
      console.log('Look mom, I did something !');
    };
  });
}
After this, delete the function once you leave the component 
ngOnDestroy() { delete(window['doSomething']); }
Finally, change your HTML from this 
(click)="doSomething()"
To this
onclick="window.doSomething()"