Any

any is a TS-specific type that we can think of it as a higher level parent to all the other types that exist in TypeScript.

It means in effect that either no type declaration has been asserted or that the TS compiler cannot infer the type that you mean. Because any does not have a data type it is equivalent to all the individual scalar and reference types combined. In TS this kind of type is called a supertype, and specific types that actually correspond to a scalar or reference type are known as subtypes. anyis the supertype of all types and string for example is a subtype of any.

Every value of string can be assigned to its supertypeany but not every value of any can be assigned to its subtype string

You can declare any as a type if you wish however it is discouraged because it effectively undermines the whole purpose of TS. Doing so is basically the same thing as declaring a value in normal JS - there is no designation at left hand assignation of which type the data belongs to.

any reflects JavaScript’s overarching flexibility; you can see it as a backdoor to a world where you want neither tooling nor type safety.

any means you can escape errors during development. If you are using custom types/interfaces and you keep getting an annoying error saying that property X doesn’t exist on type,, any will allow you to overcome it until you go back later and refine.