DEV Community

Karishma Shukla
Karishma Shukla

Posted on • Edited on

8 5 3 3 3

'any' vs 'unknown' in TypeScript

When you start learning TypeScript, you will come across two types - "any" and "unknown"

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.

Let's understand with an example.



let age: number;
let userAge: any;

userAge = 'This is some age';
userAge = 20;

age = userAge;


Enter fullscreen mode Exit fullscreen mode

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;


Enter fullscreen mode Exit fullscreen mode

The statement age=userAge gives an error.
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;
}


Enter fullscreen mode Exit fullscreen mode

And now this works too! 🎉

When to use what?

You shouldn't use either of them. But if you 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!

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (3)

Collapse
 
johnkey profile image
INDERA SHAH

👏👏👏👏

Collapse
 
jesusparra profile image
JesusParra

Thanks, it was easy to understand!

Collapse
 
patrickcodes profile image
Nishant

This is great 👏👏
Most of the blogs are too long to read. This explains it very quickly.
Thank you!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay