This website collects cookies to deliver better user experience
'any' vs 'unknown' in TypeScript 👀
'any' vs 'unknown' in TypeScript 👀
When you start learning TypeScript, you will come across two types - any and unknown.
Today, I will try to explain the difference between the two in the simplest way possible.
any - The any type allows us to assign literally “any” particular value to that variable, simulating what we know as plain JavaScript.
unknown - The unknown type is the type-safe counterpart of any. Anything is assignable to unknown, but unknown isn't assignable to anything but itself and any without a type assertion or a control flow based narrowing.
Errghh... Let's understand with an example.
let age:number;let userAge:any;userAge ='This is some age';userAge =20;age = userAge;
And yes, This code works! 🎉 Type of userAge is any so it can be assigned any value - string, number etc.
let age:number;let userAge:unknown;userAge ='This is some age';userAge =20;age = userAge;
The statement age=userAge gives an error. I mean, the type is unknown so what is the problem here? To assign an unknown value to a value with a fixed type, we have to do some quick type check!
let age:number;let userAge:unknown;userAge ='This is some age';userAge =20;if(typeof userAge ==='number'){ age = userAge;}
And now this works too! 🎉
When to use what? 🤔
Honestly speaking you shouldn't use either of them. But if you really really have to then unknown is a better choice if you know what you want to do with that value eventually.
I don't recommend using any - it takes away the actual essence of TypeScript!
I hope you learnt at least something. Also, this was my first ever post on Dev! Thank you for reading :)