Any and Unknown
unknown are used when we don't know the type of a value (e.g. dynamic content like parsed json).
any essentially disables type-checking for a value. A variable with type
any can be assigned any value, passed to any function, and called with any arguments, etc.
unknown is the type-safe version of
any. A variable with type
unknown can't be used for anything without first refining it to another type.
Many standard library functions use
any, but we should generally use
unknown instead. Unknown is relatively new - otherwise more standard library functions would probably use it.
Checking unknown keys
Due to current limitations of the
in operator, it's difficult to check if a key exists on an
This is one case where
any may make more sense for convenience. However, you can define a type guard function to accomplish this.
We'll cover type guards in more detail right after this