The following ts code both compiles (with all checks active) and passes tslint without complaints:
type sig = (p: number) => string;
const x = (p: any) => p + 1;
const y: sig = x;
alert(typeof y(5));
Obviously the alert message will (and does) display 'number'.
IntelliJ spots the problem though ('x' should probably not be assigned to 'y').
(Apologies if this is too stackoverflow-y, but I don't expect a "solution", I'm just interested in opinions)
What I’d recommend is not to use any (and enable the linter rules to disable it) and rather use unknown (which is assignable to nothing) or generics.
On a more general note, typescript is not sound (though it works well in practice) and you’ll always be able to find incorrect code that typechecks, even without using any.