Isso é natural, pois enquanto no JavaScript você pode fazer algo do tipo:
const sum = (a, b) => a + b;
// esse codigo é valido, embora a não seja obrigatoriamente um numero, ou uma string
no typescript o equivalente desta função seria
const sum = (a: any, b: any) => a + b;
Nesse caso o typescript te obriga a testar o tipo, para evitar erros em runtime.
Pra que usar any? melhor continuar no js hehe
o certo seria
const sum = (a: number, b: number) => a + b;
`any` foi apenas para representar exatamente o mesmo codigo em TS, uma vez que o Javascript não checa tipos de argumentos de função.
Deve-se evitar o any, mas qd dá erro de tipagem dizendo q o tipo pd ser qq coisa, eu costumo colocar o any pra tirar o erro. Não vejo mal nisso... me corrijam se eu estiver errado.